[英]MySQL SELECT statement only returning one row
我肯定知道表中有两行数据满足where子句的条件,但是我的编码仅输出(回送)一行。 我究竟做错了什么?
<?php
$connect= mysqli_connect("localhost", "root", "", "friends_list")
or die('error connecting with the database');
$query= "SELECT * FROM people WHERE age=19";
$result= mysqli_query($connect, $query)
or die('error querying the database');
$row= mysqli_fetch_array($result);
while ($row = mysqli_fetch_array($result))
{
echo $row['first_name'] . " " . $row['last_name'] . " is " . $row['age'] . "<br/>"
}
mysqli_close($connect);
?>
您正在吞咽第一行,并且不对其进行任何操作; 即,更改:
$row= mysqli_fetch_array($result);
while ($row = mysqli_fetch_array($result))
至:
while ($row = mysqli_fetch_array($result))
<?php
$connect= mysqli_connect("localhost", "root", "", "friends_list")
or die('error connecting with the database');
$query= "SELECT * FROM people WHERE age=19";
$result= mysqli_query($connect, $query)
or die('error querying the database');
while ($row = $result->fetch_assoc()){
echo $row['first_name'] . " " . $row['last_name'] . " is " . $row['age'] . "<br/>"
}
mysqli_close($connect);
?>
$result->fetch_assoc()
将获取与sql条件匹配的所有内容,并且可以像上述一样防止进一步的错误。 您可以在这里了解更多信息fetch_assoc()函数
您正在获取第一行,但不对其进行任何操作,因此该行不会在while循环内获取,因此不会输出。
$row= mysqli_fetch_array($result); // remove this
while ($row = mysqli_fetch_array($result))
{
echo $row['first_name'] . " " . $row['last_name'] . " is " . $row['age'] . "<br/>"
}
在这一部分:
$row= mysqli_fetch_array($result);
while ($row = mysqli_fetch_array($result))
{
您正在跳过第一行。 您获取它,然后在while循环中立即获取下一个。 您应该删除第一个抓取并仅具有:
while ($row = mysqli_fetch_array($result))
{
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.