PHP - как напечатать каждую строку массива - PullRequest
0 голосов
/ 08 февраля 2012

Я чувствую, что здесь что-то очень простое. Вот мой SQL-запрос:

$getpages = "SELECT id FROM pages WHERE account = 2 ORDER BY page_order";       
$showpages = @mysqli_query ($dbc, $getpages);
$row = mysqli_fetch_array($showpages, MYSQLI_NUM);

Затем я печатаю первый результат:

echo $row[0];

И получите правильное значение, идентификатор первой страницы (по порядку страниц):

10

Итак, я отправляю форму, которая просто превращает $row[0] в $row[1].

И ничего не печатает. Я не понимаю.

Ответы [ 4 ]

1 голос
/ 08 февраля 2012

Вы должны сделать это:

while ($row = mysqli_fetch_array($showpages, MYSQLI_NUM)) {
    $id = $row[id];
    // do something with the id
    echo $id . "<br/>"; // Echo every id
}

Это будет повторять все результаты

0 голосов
/ 29 июня 2016

$result->fetch_assoc() или mysqli_fetch_assoc($result) поймать по одной строке за раз, из mysqli_result:

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
    echo "0 results";
}

источник: http://www.w3schools.com/php/php_mysql_select.asp

0 голосов
/ 08 февраля 2012
$getpages = "SELECT id FROM pages WHERE account = 2 ORDER BY page_order";       
$showpages = @mysqli_query ($dbc, $getpages);
$row = mysqli_fetch_array($showpages, MYSQLI_NUM);

Вопрос, сколько строк извлекается в этом запросе в данном случае с идентификатором, поэтому MYSQL приведет к 1 затронутой строке, но поскольку вы используете

$row = mysqli_fetch_array($showpages, MYSQLI_NUM);

Этот код, который вы использовали, ничего не выведет попробуйте

$row[n]  as n-1
0 голосов
/ 08 февраля 2012

mysqli_fetch_array - это специальная функция, так как каждый раз, когда вы вызываете ее, она выводит СЛЕДУЮЩУЮ строку.

Итак:

while ($row = mysqli_fetch_array(stuff)){
    $var = $row['sql column'];
    // In your case "$var = $row[0];" to get the id for the first row found.
}

- то, как вы ее используете.

Это продолжит выполнение функции до тех пор, пока mysqli_fetch_array () в конце концов не вернет false.Они каждый раз выводят новую строку.А массив $ row - это массив из одной строки в таблице sql.

Использование:

print_r($row);

в цикле while, чтобы точно узнать, что возвращается для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...