0

我运行一个图像托管站点,我遇到了一个问题。我想在图片旁边制作一个 2 个按钮,例如“下一张图片”和“上一张图片”。我对 php/mysql 相当陌生并且遇到了一些麻烦。

看看我得到了什么。我使用 ID(数字)来查找正确的行,但我还必须获取图像名称才能构建下一个链接。如何使以下查询获取下一个和上一个图像名称+ id?

    $query_next = ("SELECT imageID, image_name FROM images WHERE image_name = '$image_main' ORDER BY imageID DESC LIMIT 1");

    $query_prev = ("SELECT imageID, image_name FROM images WHERE image_name = '$image_main' ORDER BY imageID ASC LIMIT 1");

// next
$next = mysql_query($query_next);
// prev
$prev = mysql_query($query_prev);

while ($row = mysql_fetch_assoc($next)) {
    $next = $row['image_name'];
}

while ($row = mysql_fetch_assoc($prev)) {
    $prev = $row['image_name'];
}

html = > 简单的东西。

<a href="http://example.com/view_image/<?=$next?>">Next image</a>
<a href="http://example.com/view_image/<?=$prev?>"> Prev image </a>
4

2 回答 2

0

对于上一项,您希望第一行比当前 id 小:

"SELECT imageID, image_name FROM images WHERE imageID < $current_img_id ORDER BY imageID DESC LIMIT 1"

对于下一个项目,您希望第一行大于当前 id:

"SELECT imageID, image_name FROM images WHERE imageID > $current_img_id ORDER BY imageID ASC LIMIT 1"
于 2013-07-25T13:53:43.623 回答
0

您的两个查询都在获取相同的图像,因为您将相同的 $image_name 传递给它们:

改变这个:

$query_next = ("SELECT imageID, image_name FROM images WHERE image_name = '$image_main_next' ORDER BY imageID DESC LIMIT 1");

$query_prev = ("SELECT imageID, image_name FROM images WHERE image_name = '$image_main_prev' ORDER BY imageID ASC LIMIT 1");

看看这是否有效。

于 2013-07-25T13:54:17.723 回答