Mysql et requète avec parametre

Résolu
milcham Messages postés 15 Statut Membre -  
Akronos Messages postés 163 Statut Membre -
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. bbar Messages postés 436 Statut Membre 140
     
    salut,
    par exemple :
    $ta_requete="SELECT * FROM le_nom_de_ta_base WHERE nom_du_champ = '$ta_variable'";
    @+
    bbar
    0
    1. milcham Messages postés 15 Statut Membre
       
      Desolé,mais ça ne marche pas.Je l'avais déjà essayé.ça marche chez toi?
      0
  2. bbar Messages postés 436 Statut Membre 140
     
    oui. Peux-tu me coller ici ce que tu as mis et qui ne fonctionne pas ?
    0
    1. milcham Messages postés 15 Statut Membre
       
      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
  3. bbar Messages postés 436 Statut Membre 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
    1. milcham Messages postés 15 Statut Membre
       
      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
    2. Akronos Messages postés 163 Statut Membre 32
       
      Bizarre que tu n'ai pas d'erreur alors que tu fais même pas la jointure entre tes tables...
      0
  4. mouf13 Messages postés 151 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
    1. cocacola75 Messages postés 13 Statut Membre
       
      $ta_requete = mysql_query("SELECT * FROM le_nom_de_ta_base WHERE (nom_du_champ =
      '" . $ta_variabla . "')");
      miam miam
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Akronos Messages postés 163 Statut Membre 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