bug嵌套的foreach循环

时间:2015-11-26 14:10:55

标签: php mysql

我的代码有问题,它有两个嵌套的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个条目。和#34;评论"和4个条目2为"消息的第一个条目"第二个是2个。我想要那个:

MESSAGE1 -commentaire 1 -commentaire 2

消息2 -commentaire 3 -commentaire 4

这就是我所拥有的:

MESSAGE1 -commentaire 1 -commentaire 2

消息2 -commentaire 1 -commentaire 2 -commentaire 3 -commentaire 4

我在2小时内搜索我没有在mysqli中找到解决方案:( (当我做的时候

mysqli_data_seek($ commentaires,0);

不会改变任何事情) 抱歉我的英语不好:c

1 个答案:

答案 0 :(得分:1)

我很确定这个:

while($row = $commentaires->fetch_array()){$rows[] = $row;}

将行附加到现有数组.. 这意味着如果你想让它按照书面形式工作,你必须在向它添加新数据之前清除$ rows。

我不是PHP鲨鱼,但我相信

unset($rows);

会做的伎俩