2012-12-12 13 views
0

我有一個SQL數據庫,表名:視頻,我在其中存儲視頻。 該表中的相關列是:id,category_idvideo_id如何選擇表中的上一個/下一個行其中列值

該id是一個獨特的id,每個視頻無論哪個類別都有不同的id,不管類別如何,相同的id永遠不可能。

category_id也是唯一的,並且每個都被分配給一個類別,例如,有趣的是1.

對於video_id有可能有多行具有相同的值爲這一列。例如,如果一個視頻託管在YouTube上,並且Vimeo上託管的視頻完全相同。然後我們有鏡子。沒錯,你在想什麼?那麼,數據庫只會將嵌入的代碼存儲到視頻中,然後由頁面調用。

出現視頻的客戶端頁面僅通過其分配的ID來重新錄製他們的視頻;讓我們說: - 有人打開類別搞笑。然後客戶端看起來:從表名視頻category_id是1. - 因此,讓我們假設有一個視頻叫做滑稽失敗,有兩個鏡像YouTube和Vimeo,所以兩行都有不同的id,但是相同的video_id。有趣的失敗YouTube的鏡子由於某種原因得到了id 1,而Vimeo得到了id 2(爲了簡單起見),當然這兩個視頻都有video_id 1並且在category_id之內1.

客戶端.php只是尋找id,例如:/category_detail.php?id=1/videopage.php?id=1

現在,您最有可能瞭解數據庫以及客戶端如何從數據庫中檢索信息。

我們想要做的只是在客戶端的頁面上添加兩個選項。這些是以前的視頻和下一個視頻。

假設我們正在瀏覽的ID 110,video_id 123內部category_id 1它沒有反射鏡。

如果我們按上一個視頻,它應該尋找:video_id 122裏面category_id 1和動態部分,ID本身。這個ID也是鏈接的一部分,它使頁面例如這是.php?id=XXX之後出現的同一個ID。

我一直在困擾一段時間,我知道解決方案更簡單,但不知何故我無法實現。

還應該有一個下一個視頻選項,顯然會在同一category_id內尋找video_id 124,無論是否有鏡像。

+1

你到目前爲止嘗試過什麼? – Deepak

+0

如果你能向我們展示你的代碼,我們可以幫你調試它。 – ghoti

+3

@awtv太多的描述。請正確並簡要地陳述您的問題。 – Smit

回答

1

上一頁:

SELECT * FROM videos WHERE category_id = 1 AND video_id < 123 
    ORDER BY video_id DESC LIMIT 1; 

下一頁:

SELECT * FROM videos WHERE category_id = 1 AND video_id > 123 
    ORDER BY video_id ASC LIMIT 1; 

正如比爾說得好,你可以讓你不得不一次查詢UNION他們。

+0

您也可以將它們合併爲一個UNION。 :) –

+0

感謝您的回答,這是朝着正確的方向發展。但是,我真的無法完成它。你能不能讓我的Skype,我可以給你一個小錢來檢查源文件,並做到這一點:)如果你是爲了它! – awtv

+0

不幸的是,我對此並不滿意,空閒時間(也沒有責任)對我來說更有價值。儘管有像rentacoder這樣的網站。 – Wrikken

相關問題