如何在where子句中动态使用url id


How to use url id in where clause dynamically

如何在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'";

我没有得到任何数据,所以这个查询有什么问题