为啥我的 php 代码没有从数据库中获取多行 [重复]
Posted
技术标签:
【中文标题】为啥我的 php 代码没有从数据库中获取多行 [重复]【英文标题】:Why my php code is not fetching multiple rows from database [duplicate]为什么我的 php 代码没有从数据库中获取多行 [重复] 【发布时间】:2021-06-18 23:14:33 【问题描述】:这是我的 php 代码无法一次获取多行... 正如我在互联网上看到的,根据 php 的版本,功能是正确的。
<?php
require'db_conn.php';
$q1 = "select * from contact";
$res = mysqli_query($conn,$q1);
echo "
<table class='table'>
<thead class='thead-dark'>
<tr>
<th scope='col'>#</th>
<th scope='col'>id</th>
<th scope='col'>Address</th>
<th scope='col'>City</th>
<th scope='col'>Country</th>
<th scope='col'>State</th>
<th scope='col'>Zip</th>
<th scope='col'>Phone</th>
<th scope='col'>#</th>
</tr>
</thead>";
while ($row = mysqli_fetch_assoc($res))
$id = $row["id"];
$address = $row["address"];
$city = $row["city"];
$country = $row["country"];
$state = $row["state"];
$zip = $row["zip"];
$phone = $row["phone"];
echo "
<tbody>
<tr>
<td> <input type='checkbox' name=''> </td>
<td>$id</td>
<td>$address</td>
<td>$city</td>
<td>$country</td>
<td>$state</td>
<td>$zip</td>
<td>$phone</td>
</tr>
</tbody>
</table>";
?>
这里的图片包含多行,但是这段代码只是获取单行
【问题讨论】:
您的echo
在while
循环之外。把它移进去,它应该可以工作
【参考方案1】:
正在返回行,您只是因为逻辑错误而没有全部显示它们 - 您的 echo
在您的 while
循环结束之后,因此它只能访问创建的最后一组数据通过循环,它只运行一次。所有其他变量都已创建,但在下次循环运行时被覆盖,没有被用于任何事情。
在循环中简单地移动与<tr>
相呼应的位,以便它重复运行 - 每行一次。显然,您需要在循环结束后将与表的结束标记相呼应的位分开,并将tbody
的开头放在循环之前。
echo "<tbody>";
while ($row = mysqli_fetch_assoc($res))
$id = $row["id"];
$address = $row["address"];
$city = $row["city"];
$country = $row["country"];
$state = $row["state"];
$zip = $row["zip"];
$phone = $row["phone"];
echo "
<tr>
<td> <input type='checkbox' name=''> </td>
<td>$id</td>
<td>$address</td>
<td>$city</td>
<td>$country</td>
<td>$state</td>
<td>$zip</td>
<td>$phone</td>
</tr>";
echo "</tbody>
</table>";
【讨论】:
成功了!!非常感谢。以上是关于为啥我的 php 代码没有从数据库中获取多行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章