Ошибка при отображении нескольких полей

Пожалуйста, помогите мне в этом, я новичок. Мне нужно отобразить несколько полей из моей базы данных. Но почему-то этот код отображает только первую строку.

 if(mysql_num_rows($result)>0)
{
$output .= "<p>Table: $tbl</p><p>";
// BUG - SHOULD LOOP THRU MULTIPLE rows
$row = mysql_fetch_row($result);
$i = 0;
while ($i < mysql_num_fields($result))
{
//echo "Information for column $i:<br />\n";
$fieldN = mysql_field_name($result, $i);
if (!$fieldN) {   $output .= "No info available<br />\n";  }
if ($row[$i]) {
$fieldN = mysql_field_name($result, $i);
if (!$fieldN) {   $fieldN = "No_field_name";  }
$output .= " $tbl F: $fieldN  V: $row[$i]<br />\n";
}
$i++;
} // end while
$output .= "</p>";
}  // end if number of rows > 0

0

Решение

В вашем коде вы получаете результат с $row = mysql_fetch_row($result); который возвращает только одну строку из набора записей в виде числового массива.

Чтобы получить все записи в наборе результатов, вы должны извлечь все записи из набора результатов, используя $row = mysql_fetch_row($result);

Попробуйте с кодом:

while ($row = mysql_fetch_row($result))    //  while there are results
{
// get each field values inside this loop
}
0

Другие решения

Вы можете попробовать использовать

while ($row = mysqli_fetch_array($result)) {

вместо

while ($i < mysql_num_fields($result))

mysqli_fetch_array () позволяет вам извлекать данные как числовой массив и как ассоциативный массив.

Если у вас есть поле базы данных с именем ID, которое находится в первой строке таблицы базы данных, вы можете использовать что-то вроде этого:

$id = $row[0];
$id = $row['ID'];

по сравнению с fetch_row и fetch_assoc, которые могут извлекать только то, что могли (числовой массив и ассоциативный массив соответственно).

0

// LOOP THRU MULTIPLE rows
while ($row = mysql_fetch_row($result))  {
$i = 0;
while ($i < mysql_num_fields($result)) {
//echo "Information for column $i:<br />\n";
if ($row[$i]) {
$fieldN = mysql_field_name($result, $i);
if (!$fieldN) {    $fieldN = "No_field_name";  }
$output .= " $tbl F: $fieldN  V: $row[$i]<br />\n";
}
$i++;
} // end while loop thru fields in each row
$output .= "</p>";
} // end while there is a row
0
По вопросам рекламы [email protected]