我确信我的表中有两行数据符合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))
您正在获取第一行,但没有对其执行任何操作,因此这一行不会在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))
{
<?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()函数