2013-09-22 107 views
4

我想從URL中獲取值以通過ID從數據庫中選擇數據。我想要id的價值。如何從URL中獲取值

例如,如果我打開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;  
} 
+3

http://bobby-tables.com/ – 0xAli

回答

9

網址:

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 
} 
0

您可以通過使用$_GET陣列獲取價值。所以id值將被存儲在$_GET['id']中。

所以你的情況,你可以將該值存儲在$id變量,如下所示:

$id = $_GET['id']; 
0

你可以用全局的$ _ GET變量

//www.example.com/index.php?id=7 
print $_GET['id']; // prints "7" 

您應該檢查所有「訪問這些值傳入「用戶數據 - 所以在這裏,」id「是一個INT。不要直接在SQL中使用它(容易受到SQL注入)。

+0

感謝所有對不起,我'噸率你們所有人,但女巫是更簡單,首先重拳出擊 謝謝大家 –

+0

我是第一個...好吧,第二;) – djot

6

有兩種方法在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方法文件。

如果變量通過傳遞的url,那麼你就可以$_GET['variable_name']$_REQUEST['variable_name']得到它,但如果變量被貼了,那麼你就需要你$_POST['variable_name']$_REQUST['variable_name']

所以你看$_REQUEST['variable_name']可以以兩種方式使用。

P.S:還記得 - 從來沒有這樣做:$results = mysql_query("SELECT * FROM next WHERE id=$id");它可能會導致MySQL的注入和數據庫可以被黑客攻破。

嘗試使用:

$results = mysql_query("SELECT * FROM next WHERE id='".mysql_real_escape_string($id)."'"); 
+0

你仍然有'$ _GET'在你的'$ _REQUEST'例子。另外,如果你想獲得'GET'數據,你應該使用'$ _GET'。這意味着你不應該使用'$ _REQUEST'。 – djot

+1

@djot同意你關於'GET'。是的,使用確切的方法來緩存變量總是更好,但我只是寫了一些理解@Vaja變量是如何發送到文件以及如何緩存的。 – zur4ik

+0

感謝所有對不起,我不能評價你們所有人,但女巫更簡單,並首先重拳出擊 謝謝大家 –

0

您還可以得到一個查詢字符串值:

$uri = $_SERVER["REQUEST_URI"]; //it will print full url 
$uriArray = explode('/', $uri); //convert string into array with explode 
$id = $urlArray[1];