2014-01-28 2 views
0

У меня есть строка кода для преобразования данных из базы данных в JSON. Единственная проблема заключается в том, что код, который у меня, кажется, отбрасывает первую запись. Любые мысли, почему.PHP JSON отбрасывает первую запись

$return_arr = Array(); 

$query_qrySelect = "SELECT * FROM table"; 
$qrySelect = mysql_query($query_qrySelect, $database) or die(mysql_error()); 
$row_qrySelect = mysql_fetch_assoc($qrySelect); 
$totalRows_qrySelect = mysql_num_rows($qrySelect); 

while ($row = mysql_fetch_array($qrySelect, MYSQL_ASSOC)) { 
    array_push($return_arr,$row); 
} 
echo json_encode($return_arr); 
+0

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** розовая коробка **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – h2ooooooo

ответ

2

Эта линия:

$row_qrySelect = mysql_fetch_assoc($qrySelect); 

где вы "потери" данных.

+0

Я удалил его, и он сработал. Спасибо за быстрый ответ – user2752153

1

Потому что вы называете mysql_fetch_assoc и никогда не использовать результат в любом месте ($row_qrySelect никогда не используется).

Согласно manual:

Возвращает ассоциативный массив, соответствующий извлеченной строке, и перемещает внутренние данные указателя вперед. mysql_fetch_assoc() эквивалентен вызову mysql_fetch_array() с MYSQL_ASSOC для необязательного второго параметра. Он возвращает только ассоциативный массив.

Смежные вопросы