2012-05-18 96 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