Variable dans URL pour requête SQL
NOa
-
NOa -
NOa -
Bonjour,
voici mon petit problème. J'ai une base de donnee (nom, prenom, adresse, numero) et je souhaite faire en sorte que selon l'url que je tape, cela fasse une requete et affiche le resultat. Je m'explique :
mondomaine.com/test.php?Phone=01234656789
donnera un résultat sql (voir le code)
mondomaine.com/test.php?Phone=0987654321
donnera un résultat sql encore different
j'ai fait un bout de code permettant de faire la requete sql :
(l'affichage dans variable marche
Je sent que je vais me faire incendier parceque je suis totalement nul en php, mais bon espérons qu'une âme charitable daigne m'aider !
En vous remerciant.
voici mon petit problème. J'ai une base de donnee (nom, prenom, adresse, numero) et je souhaite faire en sorte que selon l'url que je tape, cela fasse une requete et affiche le resultat. Je m'explique :
mondomaine.com/test.php?Phone=01234656789
donnera un résultat sql (voir le code)
mondomaine.com/test.php?Phone=0987654321
donnera un résultat sql encore different
j'ai fait un bout de code permettant de faire la requete sql :
<?php // on se connecte à notre base $base = mysql_connect ('xxxxx', 'xxxxx', 'xxxxx'); mysql_select_db ('ma_base', $base) ; ?> <html> <head> <title></title> </head> <body> <?php // lancement de la requete (dans ce cas présent cette requête est dirigée vers un numero precis, mais je voudrais que ce numero soit celui de la varibale dans l url) $sql = 'SELECT * FROM ma_table WHERE Phone = "0123456789"'; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on recupere le resultat sous forme d'un tableau $data = mysql_fetch_array($req); // on libère l'espace mémoire alloué pour cette interrogation de la base mysql_free_result ($req); mysql_close (); ?> Détails de la requête :<br /><br /> <em>Nom, Prenom</em> : <strong><?php echo $data['LastName']; ?> <?php echo $data['FirstName']; ?></strong><br /> <em>Adresse</em> : <strong><?php echo $data['Address']; ?></strong><br /> <em>Telephone</em> : <strong><?php echo $data['Phone']; ?></strong><br /> <em>Portabale</em> : <strong><?php echo $data['Cell']; ?></strong><br /> <em>Fax</em> : <strong><?php echo $data['Fax']; ?></strong><br /> </body> </html>
(l'affichage dans variable marche
Je sent que je vais me faire incendier parceque je suis totalement nul en php, mais bon espérons qu'une âme charitable daigne m'aider !
En vous remerciant.
2 réponses
Bonjour,
Les variables passées dans l'URL sont accessibles en php dans le tableau $_GET[].
Donc, dans ton cas, $_GET'Phone'] te donne le numéro de téléphone.
Ensuite, il faut se protéger, parce que suivant ce qui est mis dans la variable Phone, on peut faire exécuter n'importe quelle requête à ta base de données.
Il faut également gérer le cas où cette variable n'est pas du tout donnée dans l'URL, en utilisant la commande isset().
Pour ça, il existe la fonction mysql_real_escape_string().
Du coup, ton code devient :
Les variables passées dans l'URL sont accessibles en php dans le tableau $_GET[].
Donc, dans ton cas, $_GET'Phone'] te donne le numéro de téléphone.
Ensuite, il faut se protéger, parce que suivant ce qui est mis dans la variable Phone, on peut faire exécuter n'importe quelle requête à ta base de données.
Il faut également gérer le cas où cette variable n'est pas du tout donnée dans l'URL, en utilisant la commande isset().
Pour ça, il existe la fonction mysql_real_escape_string().
Du coup, ton code devient :
// lancement de la requete (dans ce cas présent cette requête est dirigée vers un numero precis, mais je voudrais que ce numero soit celui de la varibale dans l url) $phone = isset($_GET['Phone']) ? mysql_real_escape_string($_GET['Phone']) : ''; $sql = 'SELECT * FROM ma_table WHERE Phone = "'.$phone.'"';