2013-07-31 2 views
0

Код ниже создает данные таблицы html.Внутренний вложенный цикл while является ложным на второй итерации

Строка 1 верна и возвращает столбец1 с $ row ['LNAME'], а затем column2 со всеми результатами $ row1 ['NAME'] (их четыре).

Строка 2 и далее только эхо столбца1 и пустая ячейка в столбце2.

while ($row = $sql->fetch_assoc()){ 
echo "<tr>"; 
echo "<td>"; 
echo $row['LNAME']; 
echo "</td>"; 
echo "<td>"; 
while($row1 = $sql1->fetch_assoc()){ 
    echo $row1['NAME'] . "<br>"; 
    } 
echo "</td>"; 
echo "</tr>"; 
} 

Казалось бы, что после того, как внутренний цикл завершил он оценивает как ложное в будущих итераций внешнего цикла, где я хотел бы, чтобы это оценить как истинное.

Что следует изменить, чтобы внутренний цикл не оценивался как ложный, пока не будет выполнен внешний цикл?

ответ

0

Это потому, что вы находитесь в конце $ sql1. Вы можете обратиться к началу его снова, но я предпочитаю, чтобы отделить вытягивать данные из БД и итераций, так что я бы написать это (используя код в качестве отправной точки):

$lname = array(); 
while($row = $sql->fetch_assoc()){ 
    $lname[] = $row; 
} 

$name = array(); 
while($row1 = $sql1->fetch_assoc()){ 
    $name[] = $row1; 
} 


foreach($lname as $lvalue) { 
    echo "<tr>"; 
    echo "<td>"; 
    echo $lvalue; 
    echo "</td>"; 
    echo "<td>"; 

    foreach($name as $value) { 
     echo $value . "<br>"; 
    } 

    echo "</td>"; 
    echo "</tr>"; 
} 
+0

Благодарим вас за ответ, код, который вы мне дали, возвращает правильные количества строк, и они находятся в правильных местах (ячейках), однако строки - это все «Массив». Мне нужно будет найти, где указать ['LNAME'] и ['NAME'], еще раз спасибо – rosscosack

+0

Я изменил вашу строку echo $ lname; - echo $ lvalue ['LNAME']; и добавил индексы массива к значению $, и он работает Спасибо – rosscosack

+0

Извините за ошибку, я внес соответствующее изменение в свой код. –

0

вам нужно будет использовать mysql_data_seek($rs, 0), чтобы сбросить указатель результата в первой строке. это находится в предположении, что mysql скрыт за вашим объектом. для mysqlimysqli_data_seek соответственно

Смежные вопросы