我正在尝试制作一个搜索表单,以帮助用户过滤数据库中的结果。
如何根据从下拉列表中选择的选项对结果进行排序?
我的意思是,如果用户从列表中选择“名称”,当他们点击提交时,表格将显示所有数据,但名称将按升序或降序排序(也是用户选项)
表单(下拉列表和单选按钮的示例):
<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>
ascending<input type="radio" name="sort_order" value="asc">
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 :(得分:1)
mysql_query("select * from data order by ".mysql_real_escape_string($_POST['sort'])." ".mysql_real_escape_string($_POST['sort_order']));
像这样编写你的SQL查询
答案 1 :(得分: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";