我的项目有用户帐户,其中的照片属于上传这些照片的每个用户
我想为每个用户显示下一张和前一张照片,所以当我转到照片的朋友列表时,我可以导航(显然)到用户下一张上传的照片。如果这些是photo_id顺序中的下一张/前一张照片,我会很满意。
你如何为下一张/上一张照片编写这样的查询?
我的表结构是这样的。
CREATE TABLE IF NOT EXISTS `userphotos` (
`photo_id` int(11) NOT NULL auto_increment,
`photo_ownerid` int(11) NOT NULL,
`photo_ispublic` int(11) NOT NULL,
`photo_name` varchar(100) NOT NULL,
`photo_caption` varchar(100) NOT NULL,
`photo_imagedata` longblob NOT NULL,
`album_id` int(11) NOT NULL,
PRIMARY KEY (`photo_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=89 ;我是否可以使用类似下面的内容来选择id的
上一张图片
SELECT field1 FROM tablename WHERE id < $currentid ORDER BY id DESC LIMIT 1下一张图片
SELECT field1 FROM tablename WHERE ID > $currentid ORDER BY id ASC LIMIT 1发布于 2012-07-12 13:41:14
这些查询应该可以完成您想要完成的任务。不过,您还应该添加所有者id,以将浏览的照片限制为用户拥有的照片。
上一个图像
SELECT field1 FROM tablename
WHERE id < $currentId AND photo_ownerid = $ownerId
ORDER BY id DESC LIMIT 1下一个镜像
SELECT field1 FROM tablename
WHERE ID > $currentId AND photo_ownerid = $ownerId
ORDER BY id ASC LIMIT 1然而,正如对这个问题的评论中所暗示的那样,与每次你想要查看下一张/上一张照片时查询数据库相比,有更有效的替代方案。例如,你可以一次查询所有的照片,然后使用javascript库,例如PrettyPhoto,来整齐地组织和浏览照片。
https://stackoverflow.com/questions/11443937
复制相似问题