2015-11-26 4 views
0

У меня есть проблема с моим кодом, это два вложенных Еогеасп петли:ошибка вложенная Еогеасп петли

$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 записи для «Commentaires» 2 для первой записи «сообщений» и 2 для второго. Я хочу, чтобы:

message1 -commentaire 1 -commentaire 2

message2 -commentaire 3 -commentaire 4

и это то, что у меня есть:

message1 -commentaire 1 -commentaire 2

сообщение2 -commentaire 1 -commentaire 2 -commentaire 3 -commentaire 4

я уже поиск в течение 2-х часов я не нашел решение в MySQLi :( (когда я делаю

mysqli_data_seek ($ комментарии, 0);

, что ничего не изменится) извините за мой плохой английский: с

+0

Reinitialize переменной строк, прежде чем в то время как цикл, в котором вы запрашиваете комментарии. '$ rows = array();' –

ответ

1

Im уверен, что это:

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

добавляет строки в существующий массив .. означает, что вы должны очистить $ rows перед добавлением к нему новых данных, если вы хотите, чтобы он работал как написанный.

Я не PHP акулы, но я считаю,

unset($rows); 

будет делать трюк

+0

, что меня зол, у меня слишком много времени, с 13 часов, и через 5 минут у меня есть решение, спасибо вам большое! (ha, а массив $ row не используется в другом коде, это странно, но круто :)) –