Mysql et requète avec parametre

Résolu
Bonjour,
je voudrais la syntaxe d'une requète Mysql avec parametre.Mon parametre est une variable PHP.Merci d'avance.
Configuration: Windows XP
Firefox 2.0.0.7

5 réponses

  1. salut,
    par exemple :
    $ta_requete="SELECT * FROM le_nom_de_ta_base WHERE nom_du_champ = '$ta_variable'";
    @+
    bbar
    1. Desolé,mais ça ne marche pas.Je l'avais déjà essayé.ça marche chez toi?
  2. oui. Peux-tu me coller ici ce que tu as mis et qui ne fonctionne pas ?
    1. 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
  3. 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.' '); 


    @+
    1. 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!!!!!
    2. Bizarre que tu n'ai pas d'erreur alors que tu fais même pas la jointure entre tes tables...
  4. $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
    1. $ta_requete = mysql_query("SELECT * FROM le_nom_de_ta_base WHERE (nom_du_champ =
      '" . $ta_variabla . "')");
      miam miam
  5. 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.