如何在 html 中垂直显示 php 获取_assoc结果



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

目前它显示搜索结果如下:

地址  城市 街

17 纽约 国王 

纽约

 

我想像这样垂直显示结果:

地址 | 17 King St.
城市 | 纽约
意法半导体 | 纽约

 

这是代码:

 $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>";
 }

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

$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 条件中声明表行,关闭相同。这将为查询的每一行创建一个表行。或者只需在每个地址之后在表中添加一个空行:

Echo "<tr></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.

最新更新