我希望从URL获取值,以便按ID从数据库中选择数据。我想要id的价值。
例如,如果我打开www.example.com/index.php?id=12
我想获得数据库中id = 12的值。
如果我打开www.example.com/index.php?id=7
获取数据库中id = 7的值,依此类推。
我有一些代码:
$results = mysql_query("SELECT * FROM next WHERE id=$id");
while ($row = mysql_fetch_array($results))
{
$url = $row['url'];
echo $url;
}
答案 0 :(得分:13)
网站网址:
http://www.example.com/?id=2
代码:
$id = intval($_GET['id']);
$results = mysql_query("SELECT * FROM next WHERE id=$id");
while ($row = mysql_fetch_array($results))
{
$url = $row['url'];
echo $url; //Outputs: 2
}
答案 1 :(得分:7)
在PHP中有两种从URL获取变量的方法:
当您的网址为:http://www.example.com/index.php?id=7
时,您可以通过id
或$_GET['id']
命令获取此$_REQUEST['id']
并存储在$id
变量中。
免得看一看:
// url is www.example.com?id=7
//get id from url via $_GET['id'] command:
$id = $_GET['id']
同样如下:
//get id from url via $_REQUEST['id'] command:
$id = $_REQUEST['id']
区别在于变量可以通过url或 POST 方法传递给文件。
如果变量是通过网址传递的,那么您可以使用$_GET['variable_name']
或$_REQUEST['variable_name']
获取变量,但如果发布了变量,那么您需要$_POST['variable_name']
或$_REQUST['variable_name']
< / p>
因此,您可以看到$_REQUEST['variable_name']
可以同时使用。
PS: 还要记住 - 永远不要这样:$results = mysql_query("SELECT * FROM next WHERE id=$id");
它可能会导致MySQL注入并且您的数据库可能被黑客攻击
尝试使用:
$results = mysql_query("SELECT * FROM next WHERE id='".mysql_real_escape_string($id)."'");
答案 2 :(得分:0)
您可以使用$_GET
数组获取该值。因此,id值将存储在$_GET['id']
。
因此,在您的情况下,您可以将该值存储在$id
变量中,如下所示:
$id = $_GET['id'];
答案 3 :(得分:0)
您可以使用全局$ _GET变量
访问这些值//www.example.com/index.php?id=7
print $_GET['id']; // prints "7"
你应该检查所有“传入的”用户数据 - 所以在这里,“id”是一个INT。不要直接在SQL中使用它(易受SQL注入攻击)。
答案 4 :(得分:0)
您还可以获取查询字符串值:
$uri = $_SERVER["REQUEST_URI"]; //it will print full url
$uriArray = explode('/', $uri); //convert string into array with explode
$id = $urlArray[1];