0

我有一个查询要从我的数据库中获取结果。它可以工作......直到有超过 2 个结果,然后它只是在添加新结果之前重复一些结果。

我知道这将是因为我的查询很差,有人可以告诉我吗?

这个想法是

  1. 使用照片链接连接到数据库
  2. 获取默认用户图片为 $profile_main
  3. 将单词“photo_”与默认图片编号连接起来,并将其命名为 $answer(例如:数据库中的“photo_1”列)
  4. 现在再次检查数据库并获取 $answer 的结果并输出该数据库列中的所有信息。
$result = mysqli_query($con,"SELECT * FROM tbl_photos");
while($row = mysqli_fetch_array($result))
    {
    $profile_main = $row['default'];
    $answer = "photo_" . $profile_main;

        $result2 = mysqli_query($con,"SELECT $answer FROM tbl_photos");
        while($row = mysqli_fetch_array($result2))

        {
            echo "<img src=\"" . $row[0] . "\">";
        }
    }
4

4 回答 4

1

mysql_fetch_row 返回数字索引而不是列名(因此 ['default'] 不起作用)...

如果我理解正确,我会这样做:

$result = mysqli_query($con,"SELECT * FROM tbl_photos");
while($row = mysqli_fetch_assoc($result))
    {
    $answer = $row['photo_'.$row['default']];
    echo "<img src=\"" . $answer . "\">";
    }

无论如何,这是假设 default 和 photo_x 在同一行。

于 2013-06-30T20:27:37.413 回答
0

如果您只想要一张照片的结果,那么您可以LIMIT像这样使用

SELECT $answer FROM tbl_photos LIMIT 1

于 2013-06-30T19:19:29.013 回答
0

首先,两个循环都设置了相同的 $row 变量。使用 2 个不同的变量名称,以免结果混淆。

第二个问题是您有 2 个循环,因此每次都会显示所有结果。您需要在第二个循环中中断。像这样:

$result = mysqli_query($con,"SELECT * FROM tbl_photos");
while($row = mysqli_fetch_array($result))
    {
    $profile_main = $row['default'];
    $answer = "photo_" . $profile_main;

        $result2 = mysqli_query($con,"SELECT $answer FROM tbl_photos");
        while($row2 = mysqli_fetch_array($result2))

        {
            echo "<img src=\"" . $row2[0] . "\">";
            break;
        }
}

或者只使用一个查询,效率会更高:

$result = mysqli_query($con,"SELECT * FROM tbl_photos");
while($row = mysqli_fetch_array($result))
    {
    $profile_main = $row['default'];
    $answer = "photo_" . $profile_main;        
    echo "<img src=\"" . $row[$answer] . "\">";

}
于 2013-06-30T19:51:27.717 回答
0

您只需要 1 个查询。

尝试

$result = mysqli_query($con,"SELECT * FROM tbl_photos");
while($row = mysqli_fetch_array($result))
    {
    $photo = "photo_" .($row['default'];
    echo "<img src=\"" . $photo . "\">";
    }
于 2013-06-30T20:04:05.187 回答