"居中"mysql结果

ONO*_*NOZ 2 php mysql sql database

我想在php + mysql中制作一个照片库.

URL viewphoto.php?id = 143显示照片143.在导航菜单中,我想显示该相册中的前两张照片以及接下来的两张照片.

我想过使用:

$temp_id = $id - 2;
mysql_query("SELECT id, photo FROM photos WHERE album = {$album} AND id >= {$temp_id} LIMIT 5");
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为来自不同专辑的照片可能会在所查看的照片之前和之后有ID.

有谁知道我怎么做到这一点?

谢谢.

Tho*_*ich 6

使用id对图片进行排序是一个坏主意.想象一下你删除一张图片.你的照片链将被打破.为了解决这个问题,你需要更改id列,这是一个更糟糕的想法.

在一个专辑中使用单独的索引列进行排序.在删除图片的情况下,可以轻松地重建该索引.

或者您在表格中定义"上一个"和"下一个"列.然后,这将包含上一张和下一张图片的ID.如果图片被删除,您只需要为上一张和下一张图片更改这些列.

使用这两种方法,您可以使用嵌套的自联接来访问上一张和下一张图片.如果您需要帮助,请评论此帖子.

  • @Before虽然使用id没什么不好,只要它的顺序适合你.如果你删除一张图片,它什么都不会破坏.仅当您要手动更改订单时,才需要单独的字段. (3认同)