【问题标题】:PHP Sort by using drop-down boxPHP 使用下拉框排序
【发布时间】:2013-01-16 01:13:56
【问题描述】:

我基本上是在创建一个网站,它是一个销售手机的网站。我需要找到一种使用 PHP 的方法来创建一个下拉框,该下拉框可以按型号、品牌、屏幕尺寸等对手机进行排序。(我的 SQL 数据库中已有字段)。解决这个问题的最简单方法是什么?我对 PHP 很陌生,不太清楚如何去做。

【问题讨论】:

  • 你是用PHP-GTK还是“用PHP创建下拉框”是什么意思?
  • 我通过 PHPMyAdmin 在数据库表中有数据,并且我有一个显示这些数据的站点。但是,我需要创建一个下拉框,可以按品牌、价格(升序/降序)等对显示的产品进行排序。

标签: php


【解决方案1】:

您在 MySQL 查询中处理排序:

SELECT * FROM <<table>> ORDER BY 'Brand' DESC

然后在你的页面中调用结果;您不能通过 javascript(用户端)对查询重新排序,因为该查询被称为服务器端。

【讨论】:

    【解决方案2】:

    您可以使用$_GET 变量来实现这一点。像这样的

    <?php
      // Let's say that my products category is a $_GET variable
      $category_id = isset($_GET['category_id']) && is_numeric($_GET['category_id']) ? $_GET['category_id'] : 1; // where 1 is a default category to show!
    ?>
    
    <select onchange="if(this.value != '') document.location = '/my-phones-category.php?category_id=<?php echo $category_id; ?>&order_by=' + this.value">
      <option value="">Choose an option</option>
      <option value="model"<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'model') echo ' selected="selected"'; ?>>Model</option>
      <option value="brand"<?php if(isset($_GET['order_by']) && $_GET['order_by'] == 'brand') echo ' selected="selected"'; ?>>Brand</option>
    </select>
    

    然后我们必须看看如何进行查询以添加正确的顺序

    <?php
      switch($_GET['order_by']) {
        case 'model':
          $order_by = " ORDER BY products.product_model";
          break;
        case 'brand':
          $order_by = " ORDER BY products.product_brand";
          break;
        default:
          $order_by = " ORDER BY products.product_price";
      }
    
      // Now we have the order and we can make the query
    
      $sql = $mysqli->query("SELECT product_name, product_price 
                             FROM products
                             WHERE category_id='" . $category_id . "'
                             $order_by");
    ?>
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2013-06-10
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2016-09-14
      相关资源
      最近更新 更多