PHP / MySQL数组需要帮助

时间:2011-07-21 20:18:30

标签: php mysql html

<?php
include 'db.php';
$i=0;
$result15=mysql_query("select c.dishes from c");
while($row=mysql_fetch_array($result15))
{
if($row['dishes']!=NULL)
{
$dish[$i]=$row['dishes'];
$i++;
}

 }
  mysql_close();
  $j=0;
  while($j<=$i)
 {
echo $dish[$j];
$j++;
}
?>

获得通知:未定义的偏移:第18行的F:\ xampp \ htdocs ....中的2

3 个答案:

答案 0 :(得分:2)

你的意思是while($j<$i)

请记住,在最后一次插入后,您增加了$ i 。这意味着$ i将高于$ dish的最大键。

一些想法:

每次使用null测试相等性时,都应考虑使用is_null(或!is_null)。它更准确。

此:

$dish[$i]=$row['dishes'];
$i++;

会更好:

// obviously instead of $i you would use count($dish) later (or use foreach)
$dish[]=$row['dishes']; 

最后的while循环作为foreach会更好:

foreach($dish as $val)
{
    echo $val;
}

答案 1 :(得分:0)

您需要确保索引在回显之前存在,如下所示:

 while($j<=$i)
 {
     if (isset($dish[$j])) echo $dish[$j];
     $j++;
 }

答案 2 :(得分:0)

你的第二个while循环将会走远。您只定义最多i-1的菜肴,然后循环浏览至i。将其更改为:

while($j<$i)