你好,我试图在我的php页面中使用查询从数据库获取值。我正在获取值从数据库到下拉循环使用php。
下面是输出
的HTML<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Products <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href='product-by-category.php?Aviation'>Aviation</a></li><li><a href='product-by-category.php?beauty & personal care'>beauty & personal care</a></li><li><a href='product-by-category.php?Documentary'>Documentary</a></li><li><a href='product-by-category.php?gaming'>gaming</a></li><li><a href='product-by-category.php?health and fitness'>health and fitness</a></li><li><a href='product-by-category.php?health care'>health care</a></li><li><a href='product-by-category.php?hobbies '>hobbies </a></li><li><a href='product-by-category.php?home '>home </a></li><li><a href='product-by-category.php?misc'>misc</a></li><li><a href='product-by-category.php?mobile accessories '>mobile accessories </a></li><li><a href='product-by-category.php?mobiles'>mobiles</a></li><li><a href='product-by-category.php?Music'>Music</a></li><li><a href='product-by-category.php?office '>office </a></li><li><a href='product-by-category.php?photography'>photography</a></li><li><a href='product-by-category.php?sports'>sports</a></li><li><a href='product-by-category.php?tool & hardware '>tool & hardware </a></li> </ul>
</li>
这些值将重定向到名为product-by-category.php的页面,URL中有参数。参数将用于从数据库
中获取值。当我传递e.x sports
的参数时,我能够获得结果,但是当我传递tool & hardware
作为参数时,由于空间,我无法获得结果,我在URL中看到tool%20&%20hardware
作为参数。
我该如何解决这个问题
这里是查询,我使用
"SELECT product_id, product_name, product_price, product_image_URL FROM product_list WHERE product_publish_status='0' and product_category ='$product_category'";
这里$product_category
是从url
$product_category = $_SERVER['QUERY_STRING'];
由于您直接访问$_SERVER['QUERY_STRING']
,您需要进行URL解码:
$product_category = urldecode($_SERVER['QUERY_STRING']);
但是如果你使用正常的查询参数会更好,例如
product-by-category.php?category=Aviation
然后你可以用:
$product_category = $_GET['category'];
参数输入$_GET
后自动解码。
同样,创建url的代码应该使用urlencode
。否则,如果类别中有一些特殊字符,如%
或+
,则会出现问题。它应该是这样的:
echo "<li><a href='product-by-category.php?" . urlencode($row['category']) . "'>Aviation</a></li>";
您应该使用urldecode来解码查询中的编码字符串:
这里的链接应该是:
echo "<li><a href='product-by-category.php?category=" . urlencode(Aviation) . "'>Aviation</a></li>";
您可以使用$_GET
php全局变量访问它。
$product_category = $_GET['category'];
$product_category = mysqli_real_escape_string($product_category); // Addition
"SELECT product_id, product_name, product_price, product_image_URL FROM product_list WHERE product_publish_status='0' and product_category ='".$product_category."'";