gpt4 book ai didi

PHP MySQL While 循环只返回最后一行

转载 作者:行者123 更新时间:2023-11-29 05:05:01 25 4
gpt4 key购买 nike

我的任务是在单击该摄影师时显示与该摄影师有关的所有照片的列表。我需要回显照片列表,但目前只有最后一行被回显。

返回的行应如下所示(减去项目符号点):

1 Amager Standpark Sunset 2010-07-01 _img/1/1.jpg 1
1 Field Landscape 2010-07-09 _img/1/2.jpg 1

但是我的代码只返回这个:

1 Field Landscape 2010-07-09 _img/1/2.jpg 1

下面是我的代码:

            // SQL query to get all photo data from specific photographer
$query = mysqli_query($con, "SELECT * FROM Photograph WHERE PhotographerId='$photographerID'");
$photos = mysqli_fetch_assoc($query);
$num = mysqli_num_rows($query);

if ($num == 0) {
echo 'This are no photographs present for this photographer.';
} else if ($num > 0) {

$list = '';

while ($photos = mysqli_fetch_array($query)) {

$list .= $photos['PhotographerId'] . ' ' . $photos['PhotographName'] . ' ' .
$photos['Date'] . ' ' . $photos['PhotographURL'] . ' ' .
$photos['Visible'] . ' </br>';
}

echo $list;

}

最佳答案

您在使用第一组结果有效地运行查询后立即调用 mysqli_fetch_assoc()。然后,一旦你开始你的循环,你就从 t= 在第二行开始。

删除它将解决您的问题并使第一个结果集可用于您的循环。

您也可以只在循环内使用 mysqli_fetch_assoc() 而不是 mysqli_fetch_array()mysqli_fetch_array() 返回您不需要的查询的关联结果和数字索引结果。

// SQL query to get all photo data from specific photographer
$query = mysqli_query($con, "SELECT * FROM Photograph WHERE PhotographerId='$photographerID'");
$num = mysqli_num_rows($query);

if ($num == 0) {
echo 'This are no photographs present for this photographer.';
} else if ($num > 0) {

$list = '';

while ($photos = mysqli_fetch_assoc($query)) {

$list .= $photos['PhotographerId'] . ' ' . $photos['PhotographName'] . ' ' .
$photos['Date'] . ' ' . $photos['PhotographURL'] . ' ' .
$photos['Visible'] . ' </br>';
}

echo $list;

}

我不知道你从哪里得到$photographerID,但如果是用户输入,这个代码很容易受到SQL Injection Attacks的攻击。 .您应该考虑使用 prepared parameterized statements以避免这种风险。

关于PHP MySQL While 循环只返回最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50117126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com