0

我有一个名为 members 的表,有 3 行。以下代码尝试显示成员表中的所有行。它显示第 1 条记录 3 次,而不是显示每条记录一次。

<?php
$con = new mysqli("localhost", "root", "jce123", "profile");
if (mysqli_connect_errno()) {
    printf("Connection failed: %s\n", mysqli_connect_error());
    exit();
}
    $sql = "SELECT * FROM members";
    $res = mysqli_query($con,$sql);
    $num = mysqli_num_rows($res);
    $array = mysqli_fetch_assoc($res);
    $keysarray = array_keys($array);
    $valuearray = array_values($array);
    for ($i=0; $i < $num; $i++) {
        for($j = 0; $j < count($array); $j++) {
            echo "<table>";
            echo "<tr><td>".$keysarray[$j].": </td><td>".$valuearray[$j]."</td></tr>";
            echo "</table>";
            }
            echo "<br><br>";
        }
    mysqli_close($con);
?>

我已经根据建议更新了这个:

$sql = "SELECT * FROM members";
    $res = mysqli_query($con,$sql);
    $num = mysqli_num_rows($res);
    $array = mysqli_fetch_assoc($res);
    while ($row = mysqli_fetch_assoc($res)) {
        foreach($array as $key => $value){
            echo "<table>";
            echo "<tr><td>".$key.": </td><td>".$value."</td></tr>";
            echo "</table>";
            }
        echo "<br><br>";
        }
4

5 回答 5

1

那是因为,您的 $num = 3, count($array) = 3 和外部 for 循环与内部 for 循环无关。

于 2012-11-15T18:27:29.927 回答
0

在您拥有的地方$array = mysqli_fetch_assoc($res);,您只会从数据库中收到一行。你需要类似的东西:

while ($row=mysqli_fetch_assoc($res)) 
{

// processing for each row

}
于 2012-11-15T18:26:18.187 回答
0

试试这个...这种和平的代码没有经过测试,只是为了给你一个想法...

$sql = "SELECT * FROM members";
    $res = mysqli_query($con,$sql);
    $num = mysqli_num_rows($res);
    while ($row = mysqli_fetch_assoc($res)) {
            echo "<table>";
            echo '<tr><td> id = "'.$row['id'].'": 
                  </td><td> name = "'.$row['name'].'"</td></tr>";
            echo "</table>";
    }
于 2012-11-15T19:07:37.353 回答
0

任何基础教程都会告诉你这一点。甚至PHP 文档也提供了一个示例。

于 2012-11-15T18:03:36.740 回答
0

你可以用做这样的事情..

while ($row=mysqli_fetch_assoc($res)) 
{

    // processing for each row
    e.g
    echo $row['id'];
    echo $row['name'];
    etc
  }
于 2012-11-15T19:02:17.790 回答