Я, вероятно, пропустил что-то простое, но я, кажется, заблокирован здесь … У меня есть база данных 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 других, которые не отображаются. Любая помощь очень ценится.
Вы должны использовать следующее, потому что, если вы вызываете 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. Вы можете найти все, что вам нужно знать.