2012-07-12 73 views
0

我的项目有拥有属于已上传他们PHP/MySQL的 - 用户照片上一页/下一页链接

标识每个用户的照片的用户帐户的数量要为每个用户下一个和以前的照片,所以当我去我可以浏览的照片的朋友列表(显然)给用户下一张上传的照片。我会很好,这些是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 
+0

我建议你在'PHP image gallery'上运行互联网搜索。你可以节省很多时间。 – Smandoli 2012-07-12 01:56:52

+0

我已经有显示个人照片的用户相册。但只想实现导航来完成我想要完成的最后几个步骤。接下来的几个将是'下载图像''分享图像'和'修改图像'。 我正在环视网络,因为我们会举例说明我需要做什么。对于有人深入解释会很好,所以我有更清晰的理解。 :) – dave 2012-07-12 02:04:55

回答

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)整齐地整理和浏览照片。

+0

谢谢你的建议Varchair。这非常有帮助。 :D – dave 2012-07-12 06:47:49

+0

所以,当我查询所有的照片,然后使用JavaScript库。我会通过选择用户专辑来查询全部内容! 我的专辑是 'CREATE TABLE IF NOT EXISTS'albums'( 'id' INT(11)NOT NULL的auto_increment, 'name'文字NOT NULL, 'description'文字NOT NULL, 'user_id' INT( 11)NOT NULL, 'is_public' int(11)NOT NULL, PRIMARY KEY('id') )ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 15; – dave 2012-07-12 08:49:39

相关问题