0

嗨,使用以下 php 代码,我正在尝试从 mysql 数据库中填充一个保管箱:

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();
   ?>

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

4

1 回答 1

2

你的问题在这里:

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

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

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

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

于 2012-11-07T00:29:00.570 回答