PHP中的嵌套while循环不适用于MySQL数据库查询


Nested while loop in PHP is not working for MySQL database queries

我一整天都在试图解决这个问题,但仍然没有运气。

这个场景是:我正在开发一个垂直菜单,它应该分别查询菜单中那些组的组和项,但是组正在被填充而没有它的项。

代码是这样写的:

$data1 = mysql_query(select groupnames from groups where categoryy='Agriculture');
while($info1=mysql_fetch_array($data1))
{
    echo $info1[0];
    $data2==mysql_query(select itms from groupitems where categoryy='Agriculture' and    groupname='$info1[0]');
    while($info2=mysql_fetch_array($data2))
    {
    echo $info2[0];
    }
}

在上面的代码中,组被很好地填充,但是没有填充groupitems表中的项。如果我写Grain (Grain是我的数据库中的一组农业)而不是groupname=$info1[0],那么它就可以工作了。但它应该从查询中动态获取。

请帮帮我,我遇到麻烦了。

终于解决了!下面是代码:

<?php
include "aPannel/dbconn.php";
$query="select GroupName from categorygroup where categoryy='Agriculture'";
$i=0; 
$result=mysql_query($query);
$num=mysql_num_rows($result);
$groupname=mysql_result($result ,$i ,"GroupName"); 
mysql_close();
if ($num=="0") echo "<p>Sorry, there are no groups to display for this Category.</p>"; 
else 
{ 
echo "<p>There are currently <strong>$num</strong> groups represented in our database.</p><br>"; 
while($i < $num) 
{
    $groupname=mysql_result($result ,$i ,"GroupName"); 
    include("aPannel/dbconn.php");
    $query2 = "SELECT subcategory FROM groupsubcategory WHERE groupname='$groupname'"; // count number of items in each group 
    echo $query2 . "<br/>"; 
    $resultt=mysql_query($query2);
    $countt=mysql_num_rows($resultt); 
    mysql_close();
    echo $countt . "subcategories" . "<br/>"; // display number of items 
     $i++; 
    } 
} // end if results 
?>

您的查询没有围绕double-quotes (" ")。始终记住,传递给mysql_query方法的是一个字符串参数。而且$data2==....似乎也不对。

那么,像这样修改代码

     $data1=mysql_query("select groupnames from groups where categoryy='Agriculture'");
    while($info1=mysql_fetch_array($data1))
    {
        echo $info1[0];
        $infoTemp=$info1[0];
        $data2=mysql_query("select itms from groupitems where categoryy='Agriculture' 
and    groupname='$infoTemp'");
        while($info2=mysql_fetch_array($data2))
        {
        echo $info2[0];
        }
    }

我希望它能工作

EDIT:您还确定列itms在第二个查询或items ?EDIT:添加临时变量