Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как сделать так чтобы функция не выполнялась


Автор: cheburashkaRF 29.5.2014, 21:10
Как сделать так чтобы функция не выполнялась до того момента когда она получит второй параметр (т е получила второй параметр и она заработала:) ). Почемуто она у меня начинает выполнятся до того как прийдёт второй параметр в результате чего появляются ошибки (Warning: mysqli_query() expects parameter 1 to be mysqli),иссетом и эмпти пробовал...увы, помогите исправить
Код

<?php
$id=$_POST['id'];
$doc=$_POST['doc'];

  $con = mysqli_connect('localhost','root','');
  if (!$con) {
  die('Could not connect: ' . mysqli_error($con));
  }
    mysqli_select_db($con,"hospital");

   function getChildCategoryList($doc, $id)
 {

  $sql = "SELECT `TIME` FROM reception WHERE `TIME` NOT IN (SELECT TIME FROM doctor WHERE  doctor.Name_doctor='$doc' AND Data_priema='$id')";

  $result = mysqli_query($con,$sql);
  echo "<select name = 'time'>";
  while($row2 = mysqli_fetch_array($result )){
echo "<option value=' ".$row2['TIME']." '>".$row2['TIME']."</option>";
}
echo "</select>";
}
 getChildCategoryList(&$doc,&$id);

Автор: _zorn_ 30.5.2014, 06:27
user posted image
Ошибка вообще ничего общего со вторым параметром функции не имеет. Нужно понимать что от тебя хотят, а не придумывать из за чего может не работать.
$con пустой в функции - нужно указать global $con;

Ну и вообще код подвержен SQL Injection. 
Совет - все данные от пользователя нужно обрабатывать. Числовые intval, строковые mysql_escape_string

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)