Mysql et requète avec parametre

Résolu
milcham Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Akronos Messages postés 140 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   140
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   140
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   140
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   32
 
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   Statut Membre Dernière intervention   17
 
$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   Statut Membre Dernière intervention  
 
$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   Statut Membre Dernière intervention   32
 
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