Intereting Posts
Удаление строки запроса в PHP (иногда на основе referrer) Автоматическое заполнение формы и автоматическое отправку с помощью параметров URL Laravel 5 Carbon global Locale Использование скобок в имени файла cookie – Почему PHP превращает его в массив? Как получить значение из td через $ _POST Должен ли я генерировать каждую миниатюру динамически каждый раз, когда она запрашивается, или сохранять их при загрузке изображения? Объединение перекрывающихся диапазонов в массивах PHP? ZipArchive :: getStatusString (): недопустимый или неинициализированный объект Zip Значение не вводится в базу данных MySQL правильно Неустранимая ошибка: вызов функции-члена execute () в boolean Пользователи, роли и действия Laravel 5.1 Почему разрушен сеанс PHP? Отправка Push-уведомления на нескольких устройствах Преобразование объекта в массив дает странный результат Ввести параметры URL в меню Zend_Navigation

Заполнение результатов SQL в PHP – Не получение полного массива

Я, вероятно, пропустил что-то простое, но я, кажется, заблокирован здесь … У меня есть база данных MySQL с двумя таблицами, и каждая таблица имеет несколько строк. Таким образом, цель состоит в том, чтобы запросить базу данных и отобразить результаты в таблице, поэтому я начинаю так:

$query = "SELECT name, email, phone FROM users";

Тогда у меня есть этот PHP-код:

$result = mysql_query($query);

Затем я использую это для получения массива:

$row = mysql_fetch_array($result);

На этом этапе я подумал, что могу просто пропустить массив $row и отобразить результаты в таблице. У меня уже есть функция, чтобы делать цикл и отображение таблицы, но, к сожалению, массив кажется неполным, прежде чем он даже дойдет до функции.

Чтобы устранить эту проблему, я использую это:

 for ($i = 0; $i < count($row); $i++) { echo $row[$i] . " "; } 

На данный момент я получаю только первую строку в базе данных, и есть 3 других, которые не отображаются. Любая помощь очень ценится.

Solutions Collecting From Web of "Заполнение результатов SQL в PHP – Не получение полного массива"

Вы должны использовать следующее, потому что, если вы вызываете mysql_fetch_array вне цикла, вы возвращаете только массив из всех элементов в первой строке. Установив строку в новую строку, возвращаемую mysql_fetch_array каждый раз, когда цикл проходит, вы будете перебирать каждую строку вместо того, что действительно находится внутри строки.

 while($row = mysql_fetch_array($result)) { // This will loop through each row, now use your loop here } 

Но хороший способ – перебирать каждую строку, поскольку у вас есть только три столбца

 while($row = mysql_fetch_assoc($result)) { echo $row['name']." "; echo $row['email']." "; } 

Один из распространенных способов получения результатов – это примерно так:

 $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { print_r($row); // do stuff with $row } 

Ознакомьтесь с примерами и комментариями на PHP.net. Вы можете найти все, что вам нужно знать.