2013-01-24 85 views
0

我的網站(感謝來自SO的許多人的幫助)設置爲顯示固定數量的更新(52),其中每個星期五,一個旋出,以及一個新的旋轉進來.52個更新在13頁中每頁顯示4個。它完美的作品。顛倒SELECT查詢中顯示數據的順序

但是,新更新顯示在顯示的更新的END處。我希望新的更新成爲人們將會看到的第一個更新。

這裏是我的查詢:

$conn = dbConnect('query'); 
$updates = "SELECT update_id, update_title, update_desc, path 
    FROM updates 
    WHERE flag_live = ? 
    ORDER BY update_id DESC 
    LIMIT ?, ?"; 
$stmt = $conn->prepare($updates); 
$stmt->bind_param('sii', $uLive, $offset, $limit); 
$stmt->bind_result($uId, $uTitle, $uDesc, $uPath); 
$stmt->execute(); 
$stmt->store_result(); 
$stmt->fetch(); 

我想要的項目以相反的順序顯示,因爲他們目前做的。如果我將ORDER BYDESC更改爲ASC它會選取一組我不想要的數據。因此,從我的研究中我看到,array_reverse()rsort都可以做到。我需要知道在這裏正確使用array_reverse()的語法是否正確。

+0

http://php.net/manual/en/function.array-reverse.php你在這裏不明白什麼? –

+0

@eicto我已經讀過。 PHP手冊對我來說很少有意義,這就是我在這裏問的原因。 – wordman

+2

'$ reversed = array_reverse($ input)'''有什麼難以理解的? – Patashu

回答

0

也許嘗試這樣的事:

$results = $stmt->fetchAll(); 
$results = array_reverse($results); 

接下來的部分可以做一些不同的方式,使這真的取決於你將如何使用結果和分頁他們。

你可以使用一個for循環:http://us3.php.net/manual/en/control-structures.for.php
或者foreachhttp://us3.php.net/manual/en/control-structures.foreach.php

+0

該代碼會發生什麼?我每頁獲得一個更新,而不是當前獲得的4個。 – wordman

+0

請注意,正在使用'fetchAll()'。您可能需要調整顯示「更新」的方式,因爲stmt-> fetchAll()會一次獲得所有結果。 – JDavis

+0

是的,實際上'fetchAll()'轟炸了頁面,所以我刪除了導致上述結果的'All'部分。這對我來說肯定是一個頭銜。 – wordman

0

我不相處PHP不錯,但這樣的事情?

$results = $stmt->fetchAll(); 
$results = array_reverse($results); 
foreach ($results as $row) 
{ 
    /* $row will contain each row in the reversed array one at a time. do your usual process-one-row logic here */ 
} 

順便說一句,當你不知道,當你調用一個PHP函數返回的東西,還有一個非常有用的調試功能,後續代碼var_dump。你可以在任何東西上調用它,它會遞歸地打印它的組成部分。

http://au1.php.net/manual/en/function.var-dump.php

+0

謝謝你!我認爲JDavis的回答是告訴我,我不能做我想做的事情,因爲我將52個更新分成了13個,每個4個。 – wordman

+0

執行select查詢,然後爲'($ i = 0 + pagenumber * 4; $ i <4 + pagenumber * 4; ++ $ i)'做一個for循環? – Patashu

+0

我只是沒有把我的頭纏住這個,但我感謝大家的幫助! – wordman

0

好,很多撞頭後,我能夠完成這個任務,雖然不是當我公佈這個問題,我曾經考慮過的方式。我最終做的是編寫一個子查詢,它允許我顛倒每個頁面上顯示的更新的順序,並且正如您所知,這隻會顛倒頁面上顯示的四個更新的順序,而不是整個順序選擇了52個(參見原始問題)。

下一步是「反轉」我的分頁系統......沒有小的任務......重寫邏輯,測試代碼等。所以通過顛倒子查詢和顛倒我的分頁,我實現了我的目標。

她提供的所有建議都與她的最終結果有所幫助,但並不符合預期。如果這不像回答我自己的問題那麼簡潔,我會提前道歉。