Variable dans WHERE

Fermé
lola - 24 déc. 2009 à 10:03
 le père - 24 déc. 2009 à 14:12
Bonjour,

je cherche a intégré une variable dans WHERE mais sa ne marche pas

ce code la fonction
<?php
mysql_connect("localhost", "root", "root");
mysql_select_db("bdac.net");
$reponse = mysql_query("SELECT * FROM vote WHERE artiste='antoine''");
?>

pour que ce soit plus dynamique jais remplacé artiste='antoine' par artiste='$_GET['artiste']' mais la sa marche plus

<?php
mysql_connect("localhost", "root", "root");
mysql_select_db("mabd");
$reponse = mysql_query("SELECT * FROM vote WHERE artiste='$_GET['artiste']'");
?>

comment faire, merci d'avance !!!

6 réponses

Bonjour

Tu n'étais pas obligé d'utiliser la concaténation.
En PHP tu as tout à fait le droit de mettre une variable directement dans une chaîne entre "", elle est bien interprétée comme une variable.
Mais il y a une petite subtilité avec les tableaux associatifs : il ne faut pas mettre de ' ni de " autour de l'indice quand on les utilise à l'intérieur d'une chaîne
$reponse = mysql_query("SELECT * FROM vote WHERE artiste='$_GET[artiste]'");
(sans ' autour de artiste) est correct
Il y aurait d'autres manières de l'écrire sans concaténation, avec des { }
Voir la partie "analyse des variables" dans la doc :
https://www.php.net/manual/fr/language.types.string.php#language.types.string.syntax.double
1
JypX Messages postés 67 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 6 février 2010 7
24 déc. 2009 à 10:10
Chez moi ca marche comme ca :
$reponse = mysql_query("SELECT * FROM vote WHERE artiste='".$_GET["artiste"]."'");
0
Alex_Mansion82 Messages postés 369 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 24 octobre 2012 94
24 déc. 2009 à 10:13
Je veux pas dire de conneries mais il me semble que ca devrait être :

$reponse = mysql_query("SELECT * FROM vote WHERE artiste=".$_GET['artiste']."'");
0
bonjour JypX

ca marche au poile avec '".$_GET["artiste"]."' merci, mais quelqu'un peux t-il m'expliqué mon erreur ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alex_Mansion82 Messages postés 369 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 24 octobre 2012 94
24 déc. 2009 à 10:22
La ligne de code comme tu l'avais écrite, le programme interprétait le tout comme la requête, donc il cherchait dans ta table vote un artiste qui s'appelle : $_GET["artiste"].

Ta requête est en fait une concaténation de caractères (la requête SELECT ....) et de la variable que tu souhaites ($_GET), donc pour cela il te faut fermer le texte, concaténer ta variable comme indiqué, puis réouvrir le texte pour finir ta requête.
0
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
24 déc. 2009 à 10:31
En php, l'opérateur de concatenation de chaine est le .
pour définir une chaine on l'entoure avec des guillements simples ou doubles.

Ce qui donne : $resultatConcatenation = "chaine1"."chaine2";

Si chaine1 = toto et chaine2 = mange alors le code ci dessus donne $resultatConcatenation = "toto mange"

0