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 missingwriteerror\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你的问题不清楚…你犯了什么错误?