PHP SQL, запрос возвращает только одну строку данных

быстрый вопрос … мой запрос sql выплевывает эти данные …

Array ( [id] => 1 [name] => Test Name [text] => This is text [image] => image.jpg ) 

Когда есть два ряда данных, что-то не так с моим PHP-кодом?

 $query = "SELECT id, name, text, image FROM categories"; $results = mysql_query($query, $connection); $results = mysql_fetch_assoc($results); 

mysql_fetch_assoc извлекает одну строку за раз. Вам нужно перебрать результирующий набор:

 while(false !== ($row = mysql_fetch_assoc($results))){ [handle $row here] } 

Из документов (поиск – ваш друг):

Возвращает ассоциативный массив строк, соответствующий выбранной строке, или FALSE, если строк больше нет.

Если два или более столбца результата имеют одинаковые имена полей, последний столбец будет иметь приоритет. Чтобы получить доступ к другим столбцам (именам) с тем же именем, вам необходимо получить доступ к результату с числовыми индексами с помощью mysql_fetch_row () или добавить псевдонимы. См. Пример в описании mysql_fetch_array () о псевдонимах.

ура

Функции fetch возвращают только одну строку за раз. Если вам нужны все строки, вам нужно будет использовать цикл:

 while($row = mysql_fetch_assoc($results)) { ... do stuff with $row } 

mysql_fetch_assoc ($ results) выполняет только одну строку.

http://php.net/manual/en/function.mysql-fetch-assoc.php