【发布时间】:2014-09-07 19:18:46
【问题描述】:
我有一张表up_vadba,其中有一些需要打印的记录。我创建了三个嵌套的 while 循环(见下文),它们返回主类别、子类别和子类别结果。
一切都很好,除了如果上一个子类别结果比上一个子类别结果更多,最后一个子类别结果可能会输出太多结果 - 我希望你明白我在解释什么? 对于第一个主要类别,我有两个子类别,每个子类别中有两个或更多子类别结果。此代码输出与先前子类别中一样多的子类别结果,而不是正确数量的结果。
我现在正在用头撞墙几天来解决这个问题,似乎我无法弄清楚。我还使用了mysqli_fetch_array 函数,使用了计数器,但没有任何帮助。
你们中的任何人都可以看看代码有什么问题吗?谢谢大家,会为我节省一堵墙:D
$sql="SELECT * FROM up_vadba WHERE upid='$usid' GROUP BY vadba"; //it gets main category
$vadbe=mysqli_query($cxn,$sql) or die ("Nisem uspel izvesti poizvedbe vadb");
while($vadba=mysqli_fetch_assoc($vadbe)) //as long as there is main category
{
echo "Vadba ".$vadba['vadba']."<br>";
$sqlvaje="SELECT * FROM up_vadba WHERE upid='$usid' GROUP BY imeVaje"; //it gets subcategory
$vaje=mysqli_query($cxn,$sqlvaje) or die ("Nisem uspel izvesti poizvedb vaj");
while($vaja=mysqli_fetch_assoc($vaje)) //as long as there is subcategory
{
echo $vaja['imeVaje']."<br>";
$sqlserije="SELECT * FROM up_vadba WHERE upid='$usid' GROUP BY serija"; //it gets subcategory results
$serije=mysqli_query($cxn,$sqlserije) or die ("Nisem uspel izvesti poizvedb serij");
while($serija=mysqli_fetch_assoc($serije)) //as long as there are subcategory results
{
echo "serija".$serija['serija']." ".$serija['ponovitve']." ponovitev<br>";
}
}
}
我得到了这个输出:
Vadba 1
- počep
serija 1
serija 2
serija 3
- izpadni korak
serija 1
serija 2
serija 3
代替:
Vadba 1
- počep
serija 1
serija 2
serija 3
- izpadni korak
serija 1
serija 2
【问题讨论】:
-
你能包含输出吗?
-
当然,我得到:Vadba 1 - počep serija 1 serija 2 serija 3 - izpadni korak serija 1 serija 2 serija 3 而不是:Vadba 1 - počep serija 1 serija 2 serija 3 - izpadni korak serija 1 serija 2
-
echo "serija".$serija['serija']." ".$serija['ponovitve']." ponovitev<br>";这与您提供的输出不兼容!ponovitev输出中的单词在哪里? -
"serija".$serija['serija']." 之后回显的内容并不重要,所以我只是指出了问题。你说得对,每一行都有“serija N”之后的“N ponovitve”。
标签: php loops while-loop nested