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 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 に答える