PHP/MYSQL-用户照片上一页/下一页链接


PHP/MYSQL - User Photos Prev/Next link

我的项目有用户帐户,其中有属于每个上传照片的用户的照片

我想为每个用户显示下一张和上一张照片,所以当我转到照片的朋友列表时,我可以(显然)导航到用户下一张上传的照片。如果这些是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

这些查询应该能满足您想要完成的任务。不过,您也应该添加所有者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,来整齐地组织和浏览照片。