如何从db(php)中回显表行

如何从db(php)中回显表行,php,mysql,Php,Mysql,我想回显某个特定查询中的所有内容。如果echo$res,我只得到一个字符串。如果我改变第二个mysql_结果参数,我可以得到第二个,第二个,等等,但我想要的是所有这些,一个接一个地重复。如何将mysql结果转换为我可以使用的内容 我试过: $query="SELECT * FROM MY_TABLE"; $results = mysql_query($query); $res = mysql_result($results, 0); while ($res->fetchInto($row

我想回显某个特定查询中的所有内容。如果echo$res,我只得到一个字符串。如果我改变第二个mysql_结果参数,我可以得到第二个,第二个,等等,但我想要的是所有这些,一个接一个地重复。如何将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";
}
$query=“从我的表格中选择*”;
$results=mysql\u query($query);
$res=mysql\u result($results,0);
而($res->fetchInto($row)){
回显“$row[0]\n”;
}
$sql=“从我的表格中选择*”;
$result=mysqli_查询($conn,$sql);//第一个参数只是返回“mysqli_connect()”函数
回声“
”; 回声“; while($row=mysqli\u fetch\u assoc($result)){//重要行!!!检查摘要获取数组上的行。。 回声“; foreach($field的行=>$value){//我希望您可以这样更正这行:foreach($value的行){ echo“$value.”;//我只是没有使用“htmlspecialchars()”函数。 } 回声“; } 回声“;
扩展已接受的答案:

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>");
$sql=“从您的表格名称中选择*”;
$result=mysqli_query($conn,$sql);//第一个参数只是返回“mysqli_connect()”函数
回声“
”; 回声“; while($row=mysqli\u fetch\u assoc($result)){//重要行!!! 回声“; foreach($field的行=>$value){//如果需要,可以这样更正此行:foreach($value的行){ 回显“$value.”; } 回声“; } 回声“;

在PHP7.x中,您应该使用mysqli函数,而while循环条件中最重要的函数应该使用“mysqli_fetch_assoc()”函数,而不是“mysqli_fetch_array()”函数,您将看到您的结果是重复的。只需尝试这两种方法,即可看到差异。

嵌套循环以显示结果表的所有行和列:

$rows = mysql_num_rows($result);
$cols = mysql_num_fields($result);
for( $i = 0; $i<$rows; $i++ ) {
   for( $j = 0; $j<$cols; $j++ ) {
     echo mysql_result($result, $i, $j)."<br>";
   }
}
$rows=mysql\u num\u rows($result);
$cols=mysql\u num\u字段($result);

对于($i=0;$i),此页面上的所有代码段的大小都可以显著减小

mysqli结果集对象可以立即馈送到
foreach()
(因为它是“可编辑的”),这样就不需要进行迭代的
\u fetch()
调用

内爆每一行将允许代码正确打印结果集中的所有列数据,而无需修改代码

$sql = "SELECT * FROM MY_TABLE";
echo '<table>';
    foreach (mysqli_query($conn, $sql) as $row) {
        echo '<tr><td>' . implode('</td><td>', $row) . '</td></tr>';
    }
echo '</table>';
$sql=“从我的表格中选择*”;
回声';
foreach(mysqli_查询($conn,$sql)作为$row){
回显“”。内爆(“”,$row)。“”;
}
回声';
如果要对html实体进行编码,可以映射每一行:

implode('</td><td>' . array_map('htmlspecialchars', $row))
内爆(''.array_map('htmlspecialchars',$row))

如果不想使用内爆,可以使用关联数组语法简单地访问所有行数据。(
$row['id']

实际上,这个答案只回显每行中的一列。这个“代码段转储”缺少教育性的解释。请参阅此答案:这不显示列标题,请参阅此答案:@PaulFeakins-或者,对于列标题,请参阅。
$sql = "SELECT * FROM YOUR_TABLE_NAME";
$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 !!!
    echo "<tr>";
    foreach ($row as $field => $value) { // If you want you can right this line like this: foreach($row as $value) {
        echo "<td>" . $value . "</td>"; 
    }
    echo "</tr>";
}
echo "</table>";
$rows = mysql_num_rows($result);
$cols = mysql_num_fields($result);
for( $i = 0; $i<$rows; $i++ ) {
   for( $j = 0; $j<$cols; $j++ ) {
     echo mysql_result($result, $i, $j)."<br>";
   }
}
$sql = "SELECT * FROM MY_TABLE";
echo '<table>';
    foreach (mysqli_query($conn, $sql) as $row) {
        echo '<tr><td>' . implode('</td><td>', $row) . '</td></tr>';
    }
echo '</table>';
implode('</td><td>' . array_map('htmlspecialchars', $row))