我想在循环中使用变量,但在while循环中定义变量

时间:2013-07-04 19:28:13

标签: php mysql sql

显示“未定义变量: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}
}

2 个答案:

答案 0 :(得分: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_ *函数已弃用。

答案 1 :(得分:0)

$display1变量将在while循环后定义。您看到的警告是因为您在循环内分配了之前未使用过的变量。只需在while循环外声明变量即可清除警告:

$display1 = null;
while ($i<...