如何在where子句动态

时间:2016-01-07 11:39:30

标签: php

如何在where子句中使用其他页面的一页的url id 喜欢 我已发送http://localhost/Eshopper/products.php?id=1 其中id是产品,就像在我的表中我有tbl_products  在那

product_id,produc_name,brand_id
哪个品牌是选择形式菜单linke我点击三星的菜单,它会显示所有三星手机 我有用于获取数据的查询,我可以通过传递手册ID,如

来获取数据

SELECT * FROM tbl_products WHERE brand_id = 1 但是我希望从我通过的网址获得这个品牌id = 1  http://localhost/Eshopper/products.php?id=1 所以这个id 1自动添加到where condtion所以这样做

3 个答案:

答案 0 :(得分:2)

您必须使用$_GET

例如,您的网址为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

答案 1 :(得分:0)

您可以将多个页面上的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'];

答案 2 :(得分:0)

我能够通过网址获取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'";

我无法获取任何数据,因此此查询的问题是什么