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

时间:2012-07-12 01:34:07

标签: php image navigation hyperlink

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

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

1 个答案:

答案 0 :(得分:4)

这些查询应该适用于您想要完成的任务。虽然您还应添加所有者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来整齐地整理和浏览照片。