【问题标题】:PHP - how to print each row of an arrayPHP - 如何打印数组的每一行
【发布时间】:2012-02-08 14:59:28
【问题描述】:

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

没有任何打印。我不明白。

【问题讨论】:

  • 请发布更多代码不足以继续。您想在哪里打印什么内容以及您的表单是如何设置的?
  • “所以我提交了一个表单,它只是将 $row[0] 转换为 $row[1]。”
  • 查看常见问题解答为什么我的mysql_fetch_array 只返回一行stackoverflow.com/tags/php/info
  • 哪种形式?你能显示那个表格的代码吗?
  • 要获取多行,您必须循环获取它们。

标签: php mysql arrays mysqli


【解决方案1】:

你必须这样做:

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

这将遍历所有结果

【讨论】:

  • 不,不是 OP 正在寻找的答案,请重新阅读问题。
  • 你确定吗?我认为这正是他所要求的,尽管“所以我提交了一个简单地将 $row[0] 转换为 $row[1] 的表单”是难以理解的。
  • 类似的问题。当我用 $row[0] 替换 $row[id] 时,我得到了数组中的所有值,而当我使用 $row[1] 时,我什么也得不到
  • 当您写$row[1] 时,您期望发生什么? $row[1] 将返回结果的第二列,但您只选择一列,id
  • 按照我的解释,使用while 循环获取下一个$row。每次调用 mysqli_fetch_array 时,您都会得到 one 行(即一个 id),因此您需要继续调用该函数以获取下一行(即下一个 id)。 @LaurenceBurke 请投票给我的答案:P
【解决方案2】:

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

【讨论】:

  • 不,他不是要显示页面中的所有行。他正在刷新。请完整阅读问题。
  • 啊...然后删除我的答案。
  • 把这个带回来,因为我认为这实际上是他所要求的
【解决方案3】:
$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

【讨论】:

    【解决方案4】:

    $result-&gt;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

    【讨论】:

      猜你喜欢
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多