[英]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.