Для цикла не выполняется, когда num_rows возвращает 1

У меня проблема с циклом for в следующем коде:

<?php
// connect to database and establish $link, okay
// log in user if possible and get $userID, okay

// if logged in, get list of records
$sql = "SELECT id,name FROM `record` WHERE user=$userID ORDER BY accessed";
$records = $link->query($sql); // returns rows successfully

if (!($records->num_rows > 0)) { // if query returns no rows
// display button to create a record
} else {
// if query returns rows
for ($i = 0; $i < $records->num_rows; $i++) {
$row = $records->fetch_assoc();
if ($i === 0) {
// display first existing record button which is also a css hover to display subsequent buttons
} else if ($i === 1) {
// display second existing record button if exists
} else {
// display all other existing record buttons
}
}
// display button to create an additional record
}
  • Если идентификатор пользователя связан с 0 записями в таблице record, первый if отображает только новую кнопку записи, как и ожидалось.
  • Если идентификатор пользователя связан с 2 или более записями в таблице record, for Цикл выполняется должным образом, отображая записи, за которыми следует кнопка новой записи, как и ожидалось.
  • Если идентификатор пользователя связан с 1 записью, for Цикл не выполняется, и отображается дополнительная кнопка записи.

echo $records->num_rows отобразит соответствующее количество записей, которые я вижу в phpmyadmin.

Любые идеи, почему цикл for не выполняется, как ожидалось, когда $records->num_rows возвращает 1?

0

Решение

когда $ records-> num_rows возвращает 1
затем
цикл будет выполняться в течение одного раза, $ i = 0
когда $ records-> num_rows возвращает 2
затем
цикл будет выполняться два раза, то есть $ i = 0, $ i = 1
и $ i === 1 вернет true, и вторая кнопка записи будет отображаться вместе с первыми записями.
когда $ records-> num_rows возвращает больше 2
затем
цикл будет выполняться более двух раз, то есть $ i = 0, $ i = 1, $ i = 2 ..
, $ i === 0, $ i === 1 оба вернут истину так же, как и остальные части
и все кнопки будут отображаться.
...
..
так.
когда $ records-> num_rows возвращает 1
Кнопка secod records не отображается.
0

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

Других решений пока нет …

По вопросам рекламы [email protected]