Я пытаюсь обновить одну из своих веб-страниц от команд mysql до mysqli, и все работает, за исключением вывода моих записей. Он пропускает первую строку. Там должна быть 124 записей, которые я проверяю сmysqli fetch_assoc dropping first line with foreach
$NumCols = $RecordSet->num_rows;
Print($NumCols . "<br/>");
Однако, только 123 записей печатать, используя следующий код:
// Fill the first row of the table with the field names
$row = mysqli_fetch_assoc($RecordSet);
foreach($row as $column => $value) {
Print("<td>" . $column . "</td>");
}
Print("</tr>");
// Fill the remaining rows of the table with the values
// This code is dropping the first result
$Pos = 1;
While($row1 = $RecordSet->fetch_assoc())
{
Print("<tr><td>$Pos</td>");
foreach($row1 as $column => $value) {
Print("<td>" . $value . "</td>");
}
Print("</tr>");
$Pos++;
}
Я пытался без времени цикла и просто выводит одну запись с каждое значение как новая строка. Я также попытался просто распечатать строку без инструкции foreach и просто отображал слово Array 123 раза и все еще пропускал первую строку. Я также попытался изменить переменную строки в цикле while из строки в строку1, и оба результата дают мне тот же самый недостающий первый результат.
Я также проверяю, что первая строка отсутствует при сравнении вывода с моей страницы mysql на страницу mysqli.
'num_rows' не всегда возвращает правильное число строк. Сколько строк вы получаете, если вы запускаете один и тот же запрос непосредственно в mysql-клиенте, без php? –