根据搜索选项显示SQL中的数据

时间:2012-05-18 03:34:24

标签: php mysql 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()

2 个答案:

答案 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";