1

我有一个存储图像 url 和其他数据的数据库,我想要一个画廊来显示它们,但因为该网站是公开的,我可能想删除一些图像。当用户上传图像源和标题时,它会以自动递增的唯一 ID 插入到数据库中。当前脚本仅对 ID 加减 1 以显示下一张或上一张图像。有没有更好的方法来做到这一点?我当前的脚本:

function image_control($id){
$next=$id+'1';
$prev=$id-'1';
$query = "SELECT MAX(id), MIN(id) FROM mp_images";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
    $max = $row['MAX(id)']; $min = $row['MIN(id)'];
}
if($next==$max+"1"){$next=$min;} if($prev==$min-"1"){$prev=$max;}
echo "<a href='".$next."'>Next Image</a> <a href='".$prev."'>Previous Image</a>";
}

此失败的一个示例是 ID 为 3、4、5、7、8 的图像。

4

1 回答 1

5

一些用于获取下一个 id 的伪代码:

$nextId = SELECT id FROM mp_images WHERE id > $currentId ORDER BY id ASC LIMIT 1
if ( no results )
  // no next image

对于以前的:

$prevId = SELECT id FROM mp_images WHERE id < $currentId ORDER BY id DESC LIMIT 1
if ( no results )
  // no previous image

如果没有下一张图片(例如,您可以获取第一张图片)或没有上一张图片(您在第一张图片上),您可以自行决定该怎么做。

于 2012-05-21T19:51:17.303 回答