Я был бы признателен за некоторую помощь в этом, у меня есть набор результатов, с которым я пытаюсь работать. Результат содержит 2 поля и любое количество строк.
При вызове fetch_row(), как вы можете определить, прошел ли метод до последней строки?
Я повторяю строки, используя:
while(list($className, $classID) = $result->fetch_row()) {
echo "<tr><td>$className has ID $classID.</td></tr>"
// Here, if the loop is for the last time I need to allow some extra code to run
// echo "<tr><td>Last Item.</td></tr>"
}
Я думал о том, что инкрементный счетчик в цикле while сравнивает строку с num_rows, но думал, что должен быть slicker, чтобы сказать, достигли ли вы последней строки
Любые советы очень ценятся. Большое спасибо ShaunMc
Я думал о том, что инкрементный счетчик в цикле while сравнивает строку с num_rows, но думал, что должен быть slicker, чтобы сказать, достигли ли вы последней строки
Нет, я думаю, что на самом деле это единственный способ сделать это, независимо от того, какую оболочку DB вы используете (я предполагаю, что это PDO.)
Это позор: PHP должен иметь что-то вроде этого встроенного, по крайней мере, в конструкциях foreach
. Но это не так.
fetch_row
возвращал это, но было бы неплохо, если бы у foreach
был встроенный индикатор first_row
/ last_row
.
fetch_row() возвращает значение null, когда оно попадает в конец набора результатов.
http://php.net/manual/en/mysqli-result.fetch-row.php
Или я чего-то не хватает.