我运行图片托管网站,我遇到了问题。我想在图片旁边制作一个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>
答案 0 :(得分:0)
对于上一项,您希望第一行SMALLER比当前ID:
"SELECT imageID, image_name FROM images WHERE imageID < $current_img_id ORDER BY imageID DESC LIMIT 1"
对于下一个项目,您想要第一行LARGER而不是当前ID:
"SELECT imageID, image_name FROM images WHERE imageID > $current_img_id ORDER BY imageID ASC LIMIT 1"
答案 1 :(得分: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");
看看是否有效。