2012-07-12 42 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

相關問題