【问题标题】:Using URL parameters in MYSQL search在 MYSQL 搜索中使用 URL 参数
【发布时间】:2014-03-29 18:44:54
【问题描述】:

我正在尝试为产品建立一个搜索页面,其中我有两个表格产品和库存,我在产品和库存详细信息中有我的产品详细信息,如库存中的颜色、尺寸、价格等。请提出一个解决方案,我真的被卡住了,我需要一个更好的解决方案来实现强大的设计。以下是所有必要的细节:

产品:

product_id
product_name
product_sku
product_desc
product_category

库存:

inventory_id
product_id
inventory_color
inventory_size

我的查询:

SELECT p.product_name, p.product_sku, p.product_desc, i.inventory_color, i.inventory_color
FROM products as p
INNER JOIN  invetory as i ON p.product_id = i.product_id

网址:

www.abc.com/index.php?cat=shoe&color=black

如何从 URL 中获取猫和颜色并在查询中使用它们?还是我做对了?

【问题讨论】:

标签: php mysql url search database-design


【解决方案1】:

是的,您走在正确的道路上。使用getrequest从url获取值

$category=mysql_real_escape_string($_GET['cat']);
$color=mysql_real_escape_string($_GET['color']);

让你的 SQL 为

SQL="SELECT p.product_name, p.product_sku, p.product_desc, i.inventory_color, i.inventory_size
FROM products as p
INNER JOIN  invetory as i ON p.product_id = i.product_id
WHERE p.product_category='".$category."' AND i.inventory_color='".$color."'";

【讨论】:

  • 非常感谢,但另一件事是如何将我的空格(%20)转换为 - 在 URL 中显示时,反之亦然,从数据库中获取数据时
  • 我只注意到一件事 :) 我的参数与我的数据库字段不同,例如对于上述特定场景,它会起作用,如果用户只点击 cat 我将如何在产品类别中处理它,我正在尝试使用 facet search,它有很多参数。
  • 你能告诉我你要搜索的所有参数吗?
【解决方案2】:

您可以从 url 中获取值。 你可以使用“$_GET['parameter']”

$color = $_GET['color'];
$category = $_GET['cat'];

【讨论】:

    【解决方案3】:

    您可以使用 $_GET 来获取它,例如:

    $product_id = $_GET['product_id'];
    

    【讨论】:

      【解决方案4】:

      使用 PDO,例如 -

      $dbh = new PDO(...)
      $sth = $dbh->prepare('SELECT p.product_name, p.product_sku, p.product_desc, i.inventory_color
                            FROM products as p
                            INNER JOIN  invetory as i ON p.product_id = i.product_id 
                            WHERE p.cat = ? AND i.inventory_color = ?');
      $sth->execute(array($_GET['cat'], $_GET['color']));
      $results = $sth->fetchAll();
      

      来自http://www.php.net/manual/en/pdo.prepare.php的示例

      【讨论】:

        猜你喜欢
        • 2012-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-28
        • 1970-01-01
        • 2010-12-29
        • 2023-03-03
        • 1970-01-01
        相关资源
        最近更新 更多