PHP - 如何打印数组的每一行

时间:2012-02-08 14:59:29

标签: php mysql arrays mysqli

我觉得我在这里缺少一些非常简单的东西。这是我的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];

获取正确的值,第一页的id(按页面顺序):

10

所以我提交的表单只是将$row[0]转换为$row[1]

没有打印。我不明白。

4 个答案:

答案 0 :(得分:1)

你必须这样做:

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

这将遍历所有结果

答案 1 :(得分:0)

mysqli_fetch_array是一个特殊的函数,每次调用它时都会输出NEXT行。

所以:

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循环中查看确切返回的内容以供使用。

答案 2 :(得分:0)

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

在这个案例id中询问此查询中提取了多少行,所以MYSQL会导致1行受影响,但是因为你正在使用

$row = mysqli_fetch_array($showpages, MYSQLI_NUM);

您使用的此代码不会输出任何内容尝试

$row[n]  as n-1

答案 3 :(得分:-1)

$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