<?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
答案 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)