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

PHP中的嵌套while循环不适用于MySQL数据库查询,php,dynamic,menu,while-loop,nested,Php,Dynamic,Menu,While Loop,Nested,我一整天都在试图解决这个问题,但还是没有运气 该场景是:我正在开发一个垂直菜单,该菜单应该分别查询菜单中的组和这些组的项,但是填充组时没有其项 代码的编写方式如下: $data1 = mysql_query(select groupnames from groups where categoryy='Agriculture'); while($info1=mysql_fetch_array($data1)) { echo $info1[0]; $data2==mysql_qu

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

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

代码的编写方式如下:

$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 
?>

您的查询不是围绕着
双引号(“”)展开的。始终记住,传递给
mysql\u 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];
        }
    }
我希望它能起作用

编辑:您确定第二次查询中的列
itms
,还是

编辑:添加了临时变量

确保您发布了正确的代码$data2==mysql\u查询(“从groupitems中选择ITM,其中categoryy='Agriculture'和groupname='”。“$info1[0]”);此代码有以下错误:“is missingwrite
error\u reporting(E_ALL);
在脚本顶部,您将得到错误。$data1=mysql\u查询(“从categoryy='Agriculture'所在的组中选择组名”);而($info1=mysql\u fetch\u数组($data1)){echo$info1[0];$data2==mysql\u查询(”从groupitems中选择itms,其中categoryy='Agriculture'和groupname='info1[0]'”;而($info2=mysql_fetch_array($data2)){echo$info2[0];}}}}@tohfatulislamilton那么,你说这句话是什么意思……我的答案有用吗?是的,我用了”。问题是,$info1[0]可能是一个数组,不能用作where条件的参数值。如果我想打印或回显,即回显$info1[0],那么它可以工作,但如果我想在select语句中使用它,应该怎么做?@tohfatulislamilton简单地说,将
$info1[0]
分配给一个临时变量
$temp=$info1[0]
并在查询中使用
$temp
。好啊查看我的更新answer@TOHFATULISLAMMILTON你的问题不清楚…你犯了什么错误?