我的代码有问题,它有两个嵌套的foreach循环:
$message = mysqli_query($mysqli, "SELECT * FROM messages where pseudo ='".$Pseudo."'");
while ($data = mysqli_fetch_assoc($message)) {
$items[] = $data;
}
$items = array_reverse($items ,true);
foreach($items as $item) {
echo"".$item['msg']."";
$commentaires = mysqli_query($mysqli, "SELECT * FROM commentaires where msg ='".$item['msg']."' and profil ='".$item['pseudo']."'");
while($row = $commentaires->fetch_array()) {
$rows[] = $row;
}
foreach($rows as $row) {
$abc = $row[0];$commen = $row[3];
echo "$abc : $commen";
}
}
因此,我在“邮件”中有2个条目,“评论员”中有4个条目,“邮件”中的2个条目是第一个条目,第二个条目是2个条目。我要那个 :
message1
-评论员1
-评论员2
message2
-评论员3
-评论员4
这就是我所拥有的:
message1
-评论员1
-评论员2
message2
-评论员1
-评论员2
-评论员3
-评论员4
我已经搜索了2个小时,但我在mysqli中没有找到解决方案:(
(当我做
mysqli_data_seek($ commentaires,0);
不会改变任何东西)
对不起,我的英语不好:c
最佳答案
我很确定这:
while($row = $commentaires->fetch_array()){$rows[] = $row;}
将行追加到现有数组。
这意味着如果您希望它按书面形式工作,则必须在向其添加新数据之前清除$ rows。
我不是PHP鲨鱼,但我确实相信
unset($rows);
会做到的
关于php - 错误嵌套的foreach循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33940782/