在MYSQL搜索中使用URL参数

时间:2014-02-26 18:18:58

标签: php mysql url search database-design

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

产品:

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

URL:

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

如何从URL获取cat和color并在我的查询中使用它们?或者我是在做正确的方式吗?

4 个答案:

答案 0 :(得分:2)

是的,你走的是正确的道路。使用getrequest

从网址获取值
$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."'";

答案 1 :(得分:1)

您可以从网址中捕获值。     你可以使用“$ _GET ['参数']”

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

答案 2 :(得分:0)

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

$product_id = $_GET['product_id'];

答案 3 :(得分:0)

使用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

的示例