Variable dans WHERE

lola -  
 le père -
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

le père
 
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 68 Statut Membre 7
 
Chez moi ca marche comme ca :
$reponse = mysql_query("SELECT * FROM vote WHERE artiste='".$_GET["artiste"]."'");
0
Alex_Mansion82 Messages postés 421 Statut Membre 94
 
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
lola
 
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 421 Statut Membre 94
 
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 528 Statut Membre 46
 
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