Php 在MYSQL搜索中使用URL参数

Php 在MYSQL搜索中使用URL参数,php,mysql,url,search,database-design,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_

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

产品:

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
库存:

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
我的查询:

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
网址:

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获取cat和颜色,并在查询中使用它们?还是我做得对?

你可以用$\u获得:

$product_id = $_GET['product_id'];

您可以使用$\u获得以下信息:

$product_id = $_GET['product_id'];

您可以使用$\u获得以下信息:

$product_id = $_GET['product_id'];

您可以使用$\u获得以下信息:

$product_id = $_GET['product_id'];

使用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();

例如,在使用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();

例如,在使用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();

例如,在使用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();

从位于的示例中,您可以捕获url中的值。 您可以使用“$\u GET['parameter']”


您可以从url捕获值。 您可以使用“$\u GET['parameter']”


您可以从url捕获值。 您可以使用“$\u GET['parameter']”


您可以从url捕获值。 您可以使用“$\u GET['parameter']”


是的,你在正确的道路上。使用
Get
request
从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."'";

是的,你在正确的道路上。使用
Get
request
从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."'";

是的,你在正确的道路上。使用
Get
request
从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."'";

是的,你在正确的道路上。使用
Get
request
从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)to-在URL中显示时,从数据库中获取数据时,我只注意到一件事:)我的参数与我的db字段不同,例如,对于上述特定场景,它将起作用,如果用户只单击cat,我将如何在产品类别中处理它,我正在尝试使用方面搜索,其中有很多参数。你能告诉我你要搜索的所有参数是什么吗?非常感谢,但还有一件事我如何将我的空间(%20)转换为-在URL中显示时,反之亦然,在从数据库中获取数据时我只注意到一件事:)我的参数与我的db字段不同,例如,对于上述特定场景,它将起作用,如果用户只单击cat,我将如何处理产品类别中的该问题,我正在尝试使用facet搜索,其中有许多参数。您能告诉我您要搜索的所有参数吗?非常感谢,但还有一件事我如何转换我的空间(%20)to-在URL中显示时,从数据库中获取数据时,我只注意到一件事:)我的参数与我的db字段不同,例如,对于上述特定场景,它将起作用,如果用户只单击cat,我将如何在产品类别中处理它,我正在尝试使用方面搜索,其中有很多参数。你能告诉我你要搜索的所有参数是什么吗?非常感谢,但还有一件事我如何将我的空间(%20)转换为-在URL中显示时,反之亦然,在从数据库中获取数据时我只注意到一件事:)我的参数与我的db字段不同,例如,对于上述特定场景,它将起作用,如果用户只单击cat,我将如何处理产品类别中的该问题,我正在尝试使用facet搜索,其中有许多参数。您能告诉我您要搜索的所有参数是什么吗?