PHP从MySQL获取下一个结果

时间:2012-05-21 19:46:47

标签: php mysql controls gallery

我有一个存储图片网址和其他数据的数据库,我想要一个图库来显示它们,但由于该网站是公开的,我可能想要删除一些图像。当用户上传图像源和标题时,它将使用自动增量唯一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的图像。

1 个答案:

答案 0 :(得分: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

如果没有下一张图片(例如你可以获取第一张图片)或者没有上一张图片(你在第一张图片上),这取决于你该做什么。