【问题标题】:PHP Sort By Drop downPHP 排序方式下拉
【发布时间】:2013-06-10 23:28:45
【问题描述】:

我从这个网站上的一个类似问题中得到了答案:

PHP Sort by using drop-down box

并根据我的需要对其进行了调整,但一直坚持创建一个下拉菜单来对产品进行排序。

我的表单代码是:

<form name="myform">
        <select name="order_by" onchange="if(this.value != '') document.location = '/equipment.php?cat=<?= $prodCategory;?>&subCat=<?=$subCategory;?>&order_by=' + this.value">
            <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'choose') echo ' selected="selected"'; ?> value="choose">Sort By</option>
            <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'name') echo ' selected="selected"'; ?> value="name">Name</option>
            <option<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'price') echo ' selected="selected"'; ?> value="price">Price</option>
        </select>
</form>

我的 switch 语句和查询如下所示:

 switch($_GET['order_by']) {
            case 'name':
              $order_by = " ORDER BY shortDescription ASC";
              break;
            case 'price':
              $order_by = " ORDER BY rrp ASC";
              break;
          }
        $productQuery = 'SELECT * FROM ********* WHERE subCategory = "' . $subCat[0]['categoryID'] . $order_by . '"';

但由于某种原因,如果我选择它们,它不会按任何一个选择对它们进行排序。

有人能看出我的代码有什么问题吗?

【问题讨论】:

  • 回显$productQuery 会得到什么

标签: php html mysql forms


【解决方案1】:

这是因为您有语法错误。您没有在 subCategory 值之后关闭报价 '

$productQuery = 'SELECT * FROM ********* WHERE subCategory = "' . $subCat[0]['categoryID'] . $order_by . '"';
                                                                                         //^ here 

所以用双引号更改引号并正确连接以修复您的查询

$productQuery = "SELECT * FROM ********* WHERE subCategory = '" . $subCat[0]['categoryID'] . "'" .  $order_by;

【讨论】:

  • 谢谢你,这太完美了。以后我会记住的:)再次感谢
【解决方案2】:

您被要求更改查询部分并且您得到了正确的答案,而我为您的排序提供了另一种解决方案。

您可以使用 Ajax 和 PHP 对所有 mySQL 数据进行排序。在这种情况下,您无需刷新页面。只需按照网址 Sorting MySQL data using PHP and Ajax

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多