2015-01-06 2 views
1

У меня есть простая задача, что моя функция MySQLi показывает только одну строку/результат var_dump:MySQLi показывает только один результат

$sql  = $db->query('SELECT * FROM '.$db_prefix.'_posts'); 
$row  = $sql->fetch_array(); 

var_dump($row); 

Вот и все. Запрос в phpMyAdmin показывает 3 результата. Этот только 1. Он также не работает с fetch_assoc() или fetch_array().

Редактировать: Кроме того, я хочу, чтобы клавиши таблицы были перечислены как с «fetch_array()».

+1

'fetch_all()': HTTP: // PHP .net/ручной/EN/MySQLi-result.fetch-all.php – CD001

ответ

2

Попробуйте время цикла:

while($row = $sql->fetch_row()) 
{ 
    var_dump($row); 
} 

Поскольку fetch_row(), fetch_array(), fetch_assoc() будет все вернуть один ряд каждый раз спалить его называют недо ней «из рядов».

0

Вам придется перебирать результаты. Вы всегда можете использовать что-то вроде этого:

$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() будет содержать только 1 строку в то время

0

Попробуйте это:

$sql = $db->query('SELECT * FROM '.$db_prefix.'_posts'); 
$rows= $sql->fetch_row(); 

while ($row = $rows->fetch_row()) { 
    echo $row[0]." ".$row[1]; 
}