[英]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];
}
}
我希望它能工作
編輯:您還確定第二查詢或items
列itms
嗎? 編輯:添加了臨時變量
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.