2011-04-27 40 views
1

我試圖讓用戶可以通過點擊小箭頭.gif鏈接來對某列進行升序或降序排序。在php中使用orderby使其下降....如何?

下面是一些代碼:

echo("<tr><td><a href=\"?orderby=quarterback_first desc\"><!-- IMAGE HERE --></a>First Name</td>"); 

我的問題是,=排序依據= quarterback_first因爲我把遞減在那裏不知道,我希望它排序早點工作得很好,但?降。是否有命令或我錯過的東西,以便它可以按我想要的方式排序?謝謝你的時間!第一篇文章,很好。 :)

感謝您的回覆。這裏有更多的代碼:

$orders=array("quarterback_draft_pick", "quarterback_pass_rating", "quarterback_first","quarterback_last", "quarterback_draft_year","quarterback_draft_round","quarterback_pass_comps","quarterback_pass_yards","quarterback_pass_td","quarterback_pass_int"); 
$key=array_search($_GET['orderby'],$orders); 
$orderby=$orders[$key]; 
+3

SQL注入警報的遞減價值? – Cyclone 2011-04-27 23:47:09

+0

我假設你把這個直接放在MySQL查詢中。將零件放入「desc」後,查詢看起來像什麼? – Halcyon 2011-04-27 23:47:34

+0

您是否編寫或繼承此代碼?你發佈的內容是針對一組允許的值過濾'orderby'參數。添加「desc」會導致驗證失敗。分開'orderby'和方向參數,如下面的Frits所解釋的 – Phil 2011-04-28 00:00:57

回答

2

也許更明智的解決辦法是:

?orderby=quarterback_first&direction=desc 

只需添加一個第二個參數。

+0

我發現像這樣的東西很適合驗證方向參數 - '$ direction = isset($ _ GET ['direction'])&& strtoupper($ _ GET ['direction'] )=='D​​ESC'? 'DESC':'ASC';' – Phil 2011-04-28 00:02:38

0

觀看之間的空間 'quarterback_first' 和 '降序'

嘗試:

echo("<tr><td><a href=\"?orderby=quarterback_first&sort=desc\"><!-- IMAGE HERE --></a>First Name</td>"); 

和虎視眈眈通過$ _GET [ '排序']

+0

在一秒鐘內回答3個答案:) – raoulinski 2011-04-27 23:50:56

+0

我有點困惑,應該如何在將SQL包含在SQL可以理解的變量中時記錄desc值。 – user728288 2011-04-27 23:56:32

+0

SQL-Satatement:...選擇*從x ORDER BY列中刪除...在您的案例中使用例如:選擇*從x ORDER BY $ orderby strtoupper($ _ GET ['sort']) – raoulinski 2011-04-28 00:06:06