从MySQL数据库填充下拉列表的问题

时间:2012-11-07 00:21:06

标签: php mysqli

使用以下php代码我试图从mysql数据库填充一个dropbox:

enter code here
<?php
$mysqli = new mysqli('localhost', 'root', '', 'testdb');
if (mysqli_connect_errno())
 {
   die('Unable to connect!');
 }
else
{
 $query = 'SELECT * FROM language';
  if ($result = $mysqli->query($query))
   {
    if ($result->num_rows > 0)
     {
 ?>
   <p> Select a language
    <select id="selectLanguage">
    <option value="">select</option>
 <?php
    while($row = $result->fetch_assoc())
 {
  ?>
  <option value='<?php echo $row[0]; ?>'><?php echo $row[1]; ?></option>
 <?php
  }
   ?>
 </select>
 </p>
  <p id="result"></p>
 <?php
  }
 else
  {
   echo 'No records found!';
   }
 $result->close();
   }
  else
   {
      echo 'Error in query: $query. '.$mysqli->error;
    }
   }
   $mysqli->close();
   ?>

我没有收到任何错误,但是此消息填充的dropbox而不是存储在数据库中的单元格值: (!)注意:未定义的偏移量:第40行的C:\ wamp \ test \ index.ph中的0调用堆栈#TimeMemoryFunctionLocation 10.0009684656 {main}()... \ index.php:0'&gt; 能告诉我为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

你的问题在这里:

<option value='<?php echo $row[0]; ?>'><?php echo $row[1]; ?></option>

使用关联的数组获取数据。不是索引数组。

 while($row = $result->fetch_assoc())

您收到该错误消息,因为索引“1”不存在。