如何从db(php)中回显表行
我想回显某个特定查询中的所有内容。如果echo$res,我只得到一个字符串。如果我改变第二个mysql_结果参数,我可以得到第二个,第二个,等等,但我想要的是所有这些,一个接一个地重复。如何将mysql结果转换为我可以使用的内容 我试过:如何从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
$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))