2011-07-21 5 views
1
<?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++; 
} 
?> 

取得通知を必要とする:オフセット未定義:Fで2:\ xamppの\ htdocsに....PHPは/ MySQLのアレイヘルプは

答えて

2

ライン18上のあなたがそこにwhile($j<$i)を意味します。

の最後の挿入後に、$ i がインクリメントされました。つまり、$ iは$ dishの最大キーよりも高くなります。

いくつかの考え:

あなたはヌルと平等のためにテストしているときはいつでも、あなたはis_null(!のかIS_NULL)を使用して検討すべきです。それはより正確です。

この:ループはforeachのように良いだろうしながら、最終的にそれ

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

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

はとして良いだろう

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

あなたは必ずインデックスにする必要がありそれをエコーする前に存在します。

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

あなたの2番目のwhileループが遠くに行きます。あなたはi-1までの料理を定義してから、iまでループします。変更:

while($j<$i)