如何在where子句中将一个页面的url id用于另一个页面喜欢我已发送http://localhost/Eshopper/products.php?id=1id是产品的,比如在我的表中,我有tbl_products在中
product_id、product_name、brand_id
品牌在哪里选择形式菜单链接我有三星的菜单,当我们点击它时,它将显示所有三星手机我使用where查询来获取数据,我可以通过传递像这样的手动id来获取数据
从tbl_products
中选择*,其中brand_id=1但我想从我通过的url中获得这个品牌id=1http://localhost/Eshopper/products.php?id=1所以这个id 1自动添加到where condition中,这样做
您必须使用$_GET
。
例如,您的url是id=1
:
所以,
<?php
/** ID is not set or it is not a integer. **/
if (!isset($_GET['id']) || !filter_var($_GET['id'], FILTER_VALIDATE_INT))
exit('Invalid ID.');
/** Remove other characters. **/
$iD = intval($_GET['id']);
?>
我们首先检查id
是否已设置,以及它是否为实际数字。
然后我们对输入进行净化,以删除所有非数字的内容。
阅读材料
isset
filter_var
intval
您可以在多个页面上使用id,方法是将其保存在会话中,如下所示。
<?php
if (!isset($_SESSION)) {
session_start();
}
// Set $_GET id to $_SESSION id
if (isset($_GET['id'])) {
$_SESSION['id'] = $_GET['id'];
}
// Set default value
if (!isset($_SESSION['id'])) {
$_SESSION['id'] = 1;
}
// Now you can use $_SESSION['id'] instead of $_GET['id'];
我可以通过url获取id,但无法将该id设置为等条件
$url = $_SERVER['QUERY_STRING'];
query = "SELECT * FROM `tbl_products` WHERE brand_id= '$url'";
echo $query;
所以当我回显时,我得到id=1,但当把这个$query
放在它没有得到数据的地方时,
当我使用静态id时,我会得到数据
像
$query = "select * from tbl_products where brand_id=1";
然后我得到一、二、三个的列表
但是当我使用时
$query = "select * from tbl_products where brand_id='$url'";
我没有得到任何数据,所以这个查询有什么问题