Les Allergies
Alimentaires
Posez votre question Signaler

Variable dans URL pour requête SQL

NOa - Dernière réponse le 14 févr. 2012 à 11:20
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 :
<?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.
Lire la suite 

Variable dans URL pour requête SQL »

2 réponses
Réponse
+0
moins plus
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 :

// 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.'"';
Ajouter un commentaire
Réponse
+0
moins plus
Et bah merci, ça marche niquel de niquel :D

ça me donne envie d'approfondir mon apprentissage sur le php et mysql !

Encore merci, bonne journée.
Ajouter un commentaire
Ce document intitulé « Variable dans URL pour requête SQL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?