我的网址示例:
www.abs.com/index.php?cat=shoes
www.abs.com/index.php?cat=shoes&subcat=sports
www.abs.com/index.php?cat=shoes&subcat=sports&color=blue
我如何在我的查询中处理这种URL,这只是我的示例查询,我的两个表都有很多字段。我需要有关查询的WHERE部分的帮助,主要问题是我在我的URL中传递(cat),它在我的数据库中是(b.category)。
我的查询:
select a.p_id, a.p_name, a.p_prize, b.p_id b.color, b.category, b.subcategory
FROM products a INNER JOIN details b ON a.p_id=b.p_id
答案 0 :(得分:2)
这很容易:
$cat = $_GET['cat'];
$query = "SELECT a.p_id, a.p_name, a.p_prize, b.p_id b.color, b.category, b.subcategory
FROM products a
INNER JOIN details b ON a.p_id=b.p_id
WHERE b.category = '" . mysql_real_escape_string(trim($cat)) . "'";
请注意以下几点,首先使用mysql_real_escape_string来帮助保护您的数据库。它有助于防止SQL注入,但并非完全万无一失。
答案 1 :(得分:1)
首先,您需要通过将URL参数分配给PHP变量来使用PHP处理URL:
$cat = $_GET['cat'];
$subcat = $_GET['subcat'];
$color= $_GET['color'];
然后您可以使用这些变量来创建MySQL查询字符串:
$queryString = "SELECT a.p_id, a.p_name, a.p_prize, b.p_id b.color, b.category, b.subcategory
FROM products a INNER JOIN details b ON a.p_id=b.p_id WHERE b.category = '" . mysql_real_escape_string( $cat ) . "' AND b.subcategory = '" . mysql_real_escape_string( $subcat ) . "' AND b.color = '" . mysql_real_escape_string( $color ) . "' ";
然后,您可以使用此查询来查询数据库。