【问题标题】:Display data from SQL according to search options根据搜索选项显示来自 SQL 的数据
【发布时间】:2012-05-18 03:34:23
【问题描述】:

我正在尝试制作一个搜索表单,以帮助用户从数据库中过滤他们的结果。

如何根据从下拉列表中选择的选项对结果进行排序?

我的意思是,如果用户从列表中选择“名称”,当他们点击提交时,表格将显示所有数据,但名称将按升序或降序排列(也是用户选项)

表单(下拉列表和单选按钮示例):

<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() 中?

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:
    mysql_query("select * from data order by ".mysql_real_escape_string($_POST['sort'])." ".mysql_real_escape_string($_POST['sort_order']));
    

    这样写你的 sql 查询

    【讨论】:

    • 您好,感谢您抽出宝贵时间!我有一个问题,如果我使用数组 ($value()) 来显示我的表格,如何将该代码保存到数组中以便正确显示?
    • 我用php做表。我编辑了我的问题以添加有关表格的信息
    【解决方案2】:
    $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";
    

    【讨论】:

    • 谢谢!我会试试这个。但是有一个问题,如果我使用数组 ($value()) 来显示表格上的数据,如何将这段代码的结果保存到数组中以便正确显示?
    • 这将与您没有使用 ORDER BY 语句完全相同。唯一的区别是返回结果的顺序。格式将完全相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    相关资源
    最近更新 更多