Mysql et requète avec parametre

Résolu/Fermé
milcham Messages postés 14 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 5 juin 2010 - 2 sept. 2008 à 11:33
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 - 17 janv. 2011 à 09:37
Bonjour,
je voudrais la syntaxe d'une requète Mysql avec parametre.Mon parametre est une variable PHP.Merci d'avance.

5 réponses

bbar Messages postés 436 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 31 octobre 2008 140
2 sept. 2008 à 11:41
salut,
par exemple :
$ta_requete="SELECT * FROM le_nom_de_ta_base WHERE nom_du_champ = '$ta_variable'";
@+
bbar
0
milcham Messages postés 14 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 5 juin 2010
2 sept. 2008 à 11:46
Desolé,mais ça ne marche pas.Je l'avais déjà essayé.ça marche chez toi?
0
bbar Messages postés 436 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 31 octobre 2008 140
2 sept. 2008 à 11:56
oui. Peux-tu me coller ici ce que tu as mis et qui ne fonctionne pas ?
0
milcham Messages postés 14 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 5 juin 2010
2 sept. 2008 à 12:17
Ok voici un bout du code,
.......................
.................
$periode= $_POST['mois'].$slash.$_POST['annee'];// concatenation de variable pour obtenir un VARCHAR de stocckant la date.
.............
................
$nombre = mysql_query('SELECT nom_beneficiaire FROM encours,beneficiaire WHERE encours.periode= '$periode' '); // la requete doit me retourner le nom de tous les bénéficiaires enregistrer à cette période qui est un paramètre.
.....................
et ça me retourne l'erreur :
Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\traitements\cr210b.php on line 225


Merxi pour ton aide
0
bbar Messages postés 436 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 31 octobre 2008 140
2 sept. 2008 à 13:29
ce n'est pas tout à fait la même chose que ce que je t'ai collé : tu utilises des simples quotes alors que j'utilise des guillemets pour entourer l'ensemble de la requête. Avec les guillemets, il suffit d'entourer la variable avec des simples quotes :
$nombre = mysql_query("SELECT nom_beneficiaire FROM encours,beneficiaire WHERE encours.periode= '$periode' "); 


Par contre, si tu veux utiliser les simples quotes autour de ta variable, celle qui est avant $periode est interprétée comme fin de chaine de caractère. Et pour faire comprendre que tu as une variable derrière, il faut que tu encadre aussi avec des points :
$nombre = mysql_query('SELECT nom_beneficiaire FROM encours,beneficiaire WHERE encours.periode= '.$periode.' '); 


@+
0
milcham Messages postés 14 Date d'inscription lundi 25 août 2008 Statut Membre Dernière intervention 5 juin 2010
2 sept. 2008 à 13:53
ok merci, pour le moment, ça ne me signale pas d'erreurs.je teste la requète avec ma base et je te fais signe après.Merci encore!!!!!
0
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
17 janv. 2011 à 09:37
Bizarre que tu n'ai pas d'erreur alors que tu fais même pas la jointure entre tes tables...
0
mouf13 Messages postés 142 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 22 février 2011 17
2 sept. 2008 à 15:14
$ta_requete="SELECT * FROM le_nom_de_ta_base WHERE nom_du_champ = '$ta_variable'";
beurk

$ta_requete= 'SELECT * FROM le_nom_de_ta_base WHERE nom_du_champ = \''.$ta_variable.'\' ';
miam
0
cocacola75 Messages postés 12 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 1 février 2011
17 janv. 2011 à 03:54
$ta_requete = mysql_query("SELECT * FROM le_nom_de_ta_base WHERE (nom_du_champ =
'" . $ta_variabla . "')");
miam miam
0

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

Posez votre question
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
Modifié par Akronos le 17/01/2011 à 09:35
Avec un peu de propreté propreté:

<?php 

// Variables de connexion à la bdd 
$host = 'localhost'; // Adresse IP de ta bdd, par défaut localhost ou 127.0.0.1 
$user = 'root'; // Nom d'utilisateur de connexion à MySQL // par défaut root 
$passwd = ''; // Mot de passe de connexion, par défaut aucun 
$bdd = 'ta_bdd'; // Le nom que tu as donné à ta base de données 

// Connexion au serveur 
mysql_connect($host, $user,$passwd) 
  OR DIE('Erreur de connexion au serveur: ' . mysql_error()); 
// Connexion à la Database 
mysql_select_db($bdd) or die('Erreur de connexion a la base de données: ' . mysql_error()); 

// Ta requête 
$req = 'SELECT * FROM nom_de_la_table WHERE nom_du_champString = \'' . $taVariableTexte . '\' AND nom_du_champInt = ' . $taVariableNombre; 
mysql_query($req) 
  OR DIE('Erreur MySQL dans la requête SELECT * FROM nom_de_la_table WHERE nom_du_champ = ' . $taVariable . ': ' . mysql_error())


Les simples quotes font gagné du temps. Pour ta requête avec la date tu devrais avoir:
$req = 'SELECT nom_beneficiaire FROM encours, beneficiaire  WHERE encours.clé_primaire = beneficiaire.clé_étrangère AND encours.periode= = \'' . $periode . '\''

Si tu t'en sens l'occasion, met tes variables de connexion et la connexion serveur et bdd dans un fichier à part (exemple: bd.php), il faudra pensé à inclure ce fichier (require_once) dans les fichiers ou tu as besoin de requêtes sql.
0