Variable dans WHERE
lola
-
le père -
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 !!!
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 !!!
Configuration: Mac OS X Firefox 3.5.6
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 -
Chez moi ca marche comme ca :
$reponse = mysql_query("SELECT * FROM vote WHERE artiste='".$_GET["artiste"]."'"); -
Je veux pas dire de conneries mais il me semble que ca devrait être :
$reponse = mysql_query("SELECT * FROM vote WHERE artiste=".$_GET['artiste']."'"); -
bonjour JypX
ca marche au poile avec '".$_GET["artiste"]."' merci, mais quelqu'un peux t-il m'expliqué mon erreur ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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. -
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"