簡體   English   中英

MySQL SELECT語句僅返回一行

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM