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

PHP MySQL While循环仅返回最后一行,php,mysql,Php,Mysql,我的任务是在点击某个摄影师时,列出与该摄影师相关的所有照片的列表。我需要回显照片列表,但目前只回显最后一行 返回的行应如下所示(减去项目符号): 但是,我的代码仅返回以下内容: 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, "SELE

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

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

但是,我的代码仅返回以下内容:

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;

}
//从特定摄影师获取所有照片数据的SQL查询
$query=mysqli_query($con,“从照片中选择*,其中photopherid='$photopherid'”);
$photos=mysqli\u fetch\u assoc($query);
$num=mysqli\u num\u行($query);
如果($num==0){
echo“这不是为这位摄影师准备的照片。”;
}else if($num>0){
$list='';
while($photos=mysqli\u fetch\u数组($query)){
$list.=$photos['PhotographName'].$photos['PhotographName'.'。
$photos['Date'].'..$photos['photographhurl'.'.'。
$photos['Visible'].
'; } echo$列表; }
在使用第一组结果有效运行查询之后,您正在调用
mysqli\u fetch\u assoc()。然后,一旦开始循环,就在第二行开始t=了

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

您也可以在循环内部使用
mysqli\u fetch\u assoc()
而不是
mysqli\u fetch\u array()
mysqli\u fetch\u 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;

}
//从特定摄影师获取所有照片数据的SQL查询
$query=mysqli_query($con,“从照片中选择*,其中photopherid='$photopherid'”);
$num=mysqli\u num\u行($query);
如果($num==0){
echo“这不是为这位摄影师准备的照片。”;
}else if($num>0){
$list='';
while($photos=mysqli\u fetch\u assoc($query)){
$list.=$photos['PhotographName'].$photos['PhotographName'.'。
$photos['Date'].'..$photos['photographhurl'.'.'。
$photos['Visible'].
'; } echo$列表; }
我不知道从何处获得
$photographrid
,但如果是用户输入,则此代码易受攻击。您应该考虑使用以避免这种风险。

<代码> MySqLyFixChysAsOC($Quy);
获取第一行,然后
mysqli\u fetch\u array($query)
获取循环中的后续行。但是,您从不将第一个结果集用于任何事情。另外,请决定您想要哪种阵列!
// 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;

}