2013-09-22 7 views
4

Je veux obtenir une valeur de l'URL pour choisir les données de la base de données par ID. Je veux la valeur pour l'identification.Comment obtenir de la valeur à partir de l'URL

Par exemple si j'ouvre www.example.com/index.php?id=12
Je veux obtenir la valeur dont id = 12 dans la base de données.

Si j'ouvre www.example.com/index.php?id=7
obtenir la valeur dont id = 7 dans la base de données et ainsi de suite.

J'ai un code:

$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

Répondre

9

URL du site:

http://www.example.com/?id=2 

code:

$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

Vous pouvez obtenir cette valeur en utilisant le tableau $_GET. Donc, la valeur d'id serait stockée dans $_GET['id'].

Donc, dans votre cas, vous pouvez stocker cette valeur dans la variable $id comme suit:

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

Vous pouvez accéder à ces valeurs avec la variable globale $ _GET

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

Vous devriez vérifier tous " entrant "données de l'utilisateur - donc ici, ce" id "est un INT. Ne l'utilisez pas directement dans votre SQL (vulnérable aux injections SQL).

+0

merci à tous désolé, je 't notez tout de vous, mais la sorcière était plus simple et d'abord thump il je vous remercie tous –

+0

J'étais premier ... ok, deuxième;) – djot

6

Il existe deux façons d'obtenir variables d'URL en PHP:

Lorsque votre URL est: http://www.example.com/index.php?id=7 vous pouvez obtenir ce id via $_GET['id'] ou $_REQUEST['id'] commande et stocker dans $id variable.

De peur que un coup d'oeil:

// url is www.example.com?id=7 

//get id from url via $_GET['id'] command: 
$id = $_GET['id'] 

même sera:

//get id from url via $_REQUEST['id'] command: 
$id = $_REQUEST['id'] 

différence est que peut être transmis variable fichier via URL ou via méthode POST.

si la variable est passé à travers l'URL, vous pouvez l'obtenir avec $_GET['variable_name'] ou $_REQUEST['variable_name'] mais si la variable est affichée, alors vous vous devez $_POST['variable_name'] ou $_REQUST['variable_name']

Comme vous voyez $_REQUEST['variable_name'] peut être utilisé dans les deux sens.

P.S: Rappelez-vous aussi - jamais comme cela: il peut provoquer $results = mysql_query("SELECT * FROM next WHERE id=$id"); injection MySQL et votre base de données peut être piraté.

Essayez d'utiliser:

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

Vous avez toujours '$ _GET' à votre exemple' $ _REQUEST' . De plus, si vous voulez obtenir des données 'GET', vous devez utiliser' $ _GET'. Cela implique que vous ne devriez jamais utiliser '$ _REQUEST'. – djot

+1

@djot est d'accord avec vous sur 'GET'. Oui, il est toujours préférable d'utiliser la méthode exacte pour la variable de mise en cache, mais je viens d'écrire pour comprendre @Vaja comment les variables sont envoyées au fichier et comment elles peuvent être mises en cache. – zur4ik

+0

merci à tous désolé je ne peux pas évaluer tout de vous, mais la sorcière était plus simple et premier coup de poing il merci à tous –

0

Vous pouvez également obtenir une valeur de chaîne de requête comme:

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