2012-05-18 33 views
2

我正在嘗試製作搜索表單,以幫助用戶從數據庫中篩選其結果。根據搜索選項顯示來自SQL的數據

如何根據從下拉列表中選擇的選項對結果進行排序?

我的意思是排序喜歡,如果用戶從列表中選擇「名稱」,當他們點擊提交時,表將顯示所有數據,但名稱將按升序或降序排列(也是用戶選項)

形式(的下拉列表和單選按鈕樣品):

<select name="sort"> 
    <option value="x">Select a field</option> 
    <option value="1">Name</option> 
    <option value="2">City</option> 
    <option value="3">Occupation</option> 
</select> 
&nbsp; 
ascending<input type="radio" name="sort_order" value="asc"> 
&nbsp; 
descending<input type="radio" name="sort_order" value="desc"> 

查詢:

if ($sort !== "x") 
$SQL="SELECT * FROM data //what do I add here?// 

完成此操作的最有效方法是什麼?任何幫助表示讚賞!
隨意問我是否不清楚,因爲我不知道如何很好地說出我的問題。

編輯:

我使用的陣列$value()顯示在表中的數據。

樣品展示:

for ($i=0;$i<$num_results;$i++) 
     { 
     $row=mysql_fetch_array($result); 
     echo "<tr>"; 
     echo "<td>".$row["Name"]."</td>"; 
     if (in_array("City",$value)) 
     echo "<td>".$row["City"]."</td>"; 
      if (in_array("Occupation",$value)) 
      echo "<td>".$row["Occupation"]."</td>"; 

如何保存爲我的$sort$sort_order$value()的結果?

回答

0
$sort = mysql_real_escape_string($_POST['sort']); 
$sort_order = mysql_real_escape_string($_POST['sort_order']); 
$SQL="SELECT * FROM data ORDER BY $sort $sort_order"; 
+0

謝謝!我會試試這個。但有一個問題,如果我使用數組($ value())在表上顯示數據,我該如何將這段代碼的結果保存到數組中,以便它能正確顯示? – user1344705

+0

它將與您沒有使用ORDER BY語句完全相同。唯一的區別是返回結果的順序。格式將完全相同。 –

1
mysql_query("select * from data order by ".mysql_real_escape_string($_POST['sort'])." ".mysql_real_escape_string($_POST['sort_order'])); 

寫您的SQL查詢這樣

+0

嗨,謝謝你的時間!我有一個問題,如果我使用一個數組($ value())來顯示我的表,我該如何將這些代碼保存到數組中,以便它能正確顯示? – user1344705

+0

什麼表html或mysql – 2012-05-18 03:58:12

+0

我用php來製作表格。我編輯了我的問題以添加關於該表的信息 – user1344705