У меня есть простая проблема: моя функция MySQLi показывает только одну строку / результат в var_dump:
$sql = $db->query('SELECT * FROM '.$db_prefix.'_posts'); $row = $sql->fetch_array(); var_dump($row);
Вот и все. Запрос в phpMyAdmin показывает 3 результата. Этот только 1. Он также не работает с fetch_assoc () или fetch_array ().
Изменить: Кроме того, я хочу, чтобы клавиши таблицы были перечислены как с «fetch_array ()».
Попробуйте цикл while:
while($row = $sql->fetch_row()) { var_dump($row); }
Поскольку fetch_row()
, fetch_array()
, fetch_assoc()
будут возвращать одну строку каждый раз, когда она вызывается до тех пор, пока она не будет «из строк».
Вам придется повторять ваши результаты. Вы всегда можете использовать что-то вроде этого:
$sql = 'SELECT * FROM '.$db_prefix.'_posts'; if ($result = $mysqli->query($sql)) { while($obj = $result->fetch_object()){ var_dump($obj); } }
Однако это приведет к выходу большого количества данных (из-за var_dump). Для чистой продукции вы можете использовать
$sql = 'SELECT * FROM '.$db_prefix.'_posts'; if ($result = $mysqli->query($sql)) { while($obj = $result->fetch_object()){ echo $obj->*sql_columnname_here*; // Repeat for all columns } }
fetch_row () будет содержать только одну строку за раз
Попробуй это:
$sql = $db->query('SELECT * FROM '.$db_prefix.'_posts'); $rows= $sql->fetch_row(); while ($row = $rows->fetch_row()) { echo $row[0]." ".$row[1]; }