У меня проблема с заполнением выпадающего списка. На странице не отображается раскрывающийся список. Он также не выдает никаких исключений. Я ценю любую помощь.

 $mysqli = new mysqli($db_host, $db_username, $db_password, $db_database);
  if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
  } 
  <?php 
     $SQL = "SELECT c_id, c_name FROM table1"; 
     $result = $mysqli->query($SQL);
   ?> 
 <select id="country" name="country">    
    <option value=''></option>    
  <?php 
    while ($row = $result->fetch_object()) 
    {       
    echo "<option value='{$row['c_id']}'>{$row['c_name']}</option>\n";
   }   
?>  
</select>
0
nav100 13 Дек 2011 в 00:35
Вы имели в виду $result вместо $cresult?
 – 
Mike Christensen
13 Дек 2011 в 00:39
Он должен показывать выбор. Можете ли вы показать нам сгенерированный HTML?
 – 
Bojangles
13 Дек 2011 в 00:39
Включите ошибки ini_set('display_errors', 1); ini_set('error_reporting', E_ALL); Трудно понять, что не так, поскольку вы используете классы, для которых мы не можем видеть код.
 – 
Bot
13 Дек 2011 в 00:39
Это было бы хорошо, если вы находитесь на сервере разработки; но если он находится на производстве; оставьте ошибки отображения выключенными, а вместо этого только журналы /var/log/httpd/error_log
 – 
dchrastil
13 Дек 2011 в 00:42
Я получаю неопределенную переменную: mysqli.
 – 
nav100
13 Дек 2011 в 00:43

1 ответ

Если ваш запрос не завершился ошибкой, поскольку вы выбрали объект вместо ассоциативного массива, используйте оператор объекта для доступа к свойствам (->)

while ($row = $cresult->fetch_object()) 
{       
  echo "<option value='{$row->c_id}'>{$row->c_name}</option>\n";
  //------------------------^^^----------^^^^
} 
0
Michael Berkowski 13 Дек 2011 в 00:40