我觉得我在这里缺少一些非常简单的东西。这是我的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]
。
没有打印。我不明白。
答案 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";
}