0

显示“未定义变量:display1”。我能够显示while循环。问题是 $display1 在 while 循环中定义,它必须在其中,因为有 $i 增量。

//SQL for display category name
$query1="SELECT cat_name FROM restaurant_category WHERE rest_id={$display}";
$result1=mysql_query($query1);
$rowNum1=mysql_num_rows($result1);
//SQL for display dish information of each category
$query3="SELECT cat_id FROM restaurant_category WHERE cat_name={$display1}";
$result3=mysql_query($query3);
$display3=mysql_query($result3);
$query2="SELECT dish_name, dish_description, dish_price FROM dish WHERE cat_id={$display3}";
$result2=mysql_query($query2);
$rowNum2=mysql_num_rows($result2);
$data=mysql_fetch_row($result2);

while($i<$rowNum1)
{
$display1=mysql_result($result1,$i,"cat_name");
//display category name
    while($j<$rowNum2)
    {//display dish information}
}
4

2 回答 2

1
//SQL for display dish information of each category
$query3="SELECT cat_id FROM restaurant_category WHERE cat_name={$display1}";
$result3=mysql_query($query3);
$display3=mysql_query($result3);

这似乎是一个错误,在 $result3 上调用 mysql_query。应该是

$display3 = mysql_fetch_row($result3)

和这里:

$display1 = null;
while($i<$rowNum1)
{
$display1=mysql_result($result1,$i,"cat_name");
//display category name
    while($j<$rowNum2)
    {
       //display dish information
    }
}

那里可能存在语法错误。还要在 while 范围之外添加 $display1 。

还有义务: mysql_* 函数已折旧。

于 2013-07-04T19:30:28.073 回答
0

$display1变量将在 while 循环之后定义。您看到的警告是因为您在循环中分配了一个您以前没有使用过的变量。只需在 while 循环外声明变量即可消除警告:

$display1 = null;
while ($i<...
于 2013-07-04T19:31:26.023 回答