Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在html中垂直显示php fetch_assoc结果?_Php_Html_Mysql - Fatal编程技术网

如何在html中垂直显示php fetch_assoc结果?

如何在html中垂直显示php fetch_assoc结果?,php,html,mysql,Php,Html,Mysql,我有一个html/mysql查询结果页面,它显示一个包含3列的标题行,标题行下的行中有一条记录。如果只是html,我就可以做到,但使用mysql fetch assoc代码,我不知道怎么做 当前,它显示如下搜索结果: 地址城市街 17纽约国王酒店 我想垂直显示结果,如下所示: 地址:国王街17号。 纽约市 圣约翰 代码如下: $query = "(SELECT * FROM test where id='$id')"; $result = mysqli_query($link, $que

我有一个html/mysql查询结果页面,它显示一个包含3列的标题行,标题行下的行中有一条记录。如果只是html,我就可以做到,但使用mysql fetch assoc代码,我不知道怎么做

当前,它显示如下搜索结果:

地址城市街

17纽约国王酒店

我想垂直显示结果,如下所示:

地址:国王街17号。 纽约市 圣约翰

代码如下:

 $query = "(SELECT * FROM test where id='$id')";
 $result = mysqli_query($link, $query);

 echo "<table border='1'>
 <tr>
 <th>Address</th>
 <th>City</th>
 <th>State</th>
 </tr>";

 while ($row = mysqli_fetch_assoc($result)) {
 echo "<tr>";
 echo "<td>" . $row['address'] . "</td>";
 echo "<td>" . $row['city'] . "</td>";
 echo "<td>" . $row['state'] . "</td>";
 echo "</tr>";
 }

您可以尝试以下方法:

将数据存储在阵列中:

while ($row = mysqli_fetch_assoc($result)) {
    $addresses[] = $row['address'] ;
    $cities[] = $row['city'] ;
    $states[] = $row['state'] ;
}
然后显示结果:

echo '<tr>';
echo '<th>Address</th>';
foreach ($addresses as $address) {
    echo '<td>' . $address . '</td>';
}
echo '</tr>';

echo '<tr>';
echo '<th>City</th>';
foreach ($cities as $city) {
    echo '<td>' . $city . '</td>';
}
echo '</tr>';

// ...etc.

如果查询结果中只有一行,可以尝试

$query = "(SELECT * FROM test where id='$id')";
$result = mysqli_query($link, $query);

echo "<table border='1'>";

while ($row = mysqli_fetch_assoc($result)) {
echo "<tr><th>Address</th><td>" . $row['address'] . "</td></tr>";
echo "<tr><th>City</th><td>" . $row['city'] . "</td></tr>";
echo "<tr><th>State</th><td>" . $row['state'] . "</td></tr>";
}
echo "</table>";

如果查询只返回一行,请更改表格式,以便:

  echo "<table border='1'>";

 while ($row = mysqli_fetch_assoc($result)) {
 echo "<tr>";
 echo "<td>Adress: </td><td>" . $row['address'] . "</td>";
 echo "<td>City: </td><td>" . $row['city'] . "</td>";
 echo "<td>State: </td><td>" . $row['state'] . "</td>";
 echo "</tr>";
 }
在您的请求类型中,您没有头,因此不需要标记

如果您的请求返回多行,即使是对于相同的Id,那么您必须在while条件中声明该表,对于close也是如此。这将为查询的每一行创建一个表。或者在每个地址后的表格中添加一行空行:

Echo "<tr></tr>"

你想要更多数据的结果是什么?谢谢。工作。我只需要为代码中的每一行添加和标记,这样每个名称/值对就会出现在不同的行上,使其垂直。这就是你所缺少的。