如何从db(php)回显表行

pg.*_*pg. 8 php mysql

我想回应一下特定查询的所有内容.如果echo $ res我只得到一个字符串.如果我改变了第二个mysql_result参数,我可以获得第二个,第二个等等,但我想要的是所有这些,一个接一个地回应.如何将mysql结果转换为可以使用的内容?

我试过了:

$query="SELECT * FROM MY_TABLE";
$results = mysql_query($query);
$res = mysql_result($results, 0);

while ($res->fetchInto($row)) {
    echo "<form id=\"$row[0]\" name=\"$row[0]\" method=post action=\"\"><td style=\"border-bottom:1px solid black\">$row[0]</td><td style=\"border-bottom:1px solid black\"><input type=hidden name=\"remove\" value=\"$row[0]\"><input type=submit value=Remove></td><tr></form>\n";
}
Run Code Online (Sandbox Code Playgroud)

Vot*_*ple 20

$sql = "SELECT * FROM MY_TABLE";
$result = mysqli_query($conn, $sql); // First parameter is just return of "mysqli_connect()" function
echo "<br>";
echo "<table border='1'>";
while ($row = mysqli_fetch_assoc($result)) { // Important line !!! Check summary get row on array ..
    echo "<tr>";
    foreach ($row as $field => $value) { // I you want you can right this line like this: foreach($row as $value) {
        echo "<td>" . $value . "</td>"; // I just did not use "htmlspecialchars()" function. 
    }
    echo "</tr>";
}
echo "</table>";
Run Code Online (Sandbox Code Playgroud)


Too*_*eve 12

扩展已接受的答案:

function mysql_query_or_die($query) {
    $result = mysql_query($query);
    if ($result)
        return $result;
    else {
        $err = mysql_error();
        die("<br>{$query}<br>*** {$err} ***<br>");
    }
}

...
$query = "SELECT * FROM my_table";
$result = mysql_query_or_die($query);
echo("<table>");
$first_row = true;
while ($row = mysql_fetch_assoc($result)) {
    if ($first_row) {
        $first_row = false;
        // Output header row from keys.
        echo '<tr>';
        foreach($row as $key => $field) {
            echo '<th>' . htmlspecialchars($key) . '</th>';
        }
        echo '</tr>';
    }
    echo '<tr>';
    foreach($row as $key => $field) {
        echo '<td>' . htmlspecialchars($field) . '</td>';
    }
    echo '</tr>';
}
echo("</table>");
Run Code Online (Sandbox Code Playgroud)

优点:

  • 使用mysql_fetch_assoc(而不是没有第二个参数的mysql_fetch_array来指定类型),我们避免每个字段两次,一次用于数字索引(0,1,2,..),第二次用于关联键.

  • 将字段名称显示为表的标题行.

  • 显示如何为每个字段获取column name($ key)和value($ field),以迭代行的字段.

  • 包裹在<table>如此正确显示.

  • 如果查询失败,(可选)将显示查询字符串和mysql_error.

示例输出:

Id      Name
777     Aardvark
50      Lion
9999    Zebra
Run Code Online (Sandbox Code Playgroud)


Bab*_*ker 8

 $result= mysql_query("SELECT * FROM MY_TABLE");
 while($row = mysql_fetch_array($result)){
      echo $row['whatEverColumnName'];
 }
Run Code Online (Sandbox Code Playgroud)

  • 实际上,这个答案只能从每一行中回过一列. (3认同)