Récupérer une valeur précise

Résolu
DZ -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'essaie de faire une requête qui doit récupérer une donnée précise. Le problème est que lorsque je fais ma requête elle récupère toutes les valeurs. Je n'arrive pas à faire une requête qui tient compte de ma variable avant ma chaîne de caractère...

voici ma requête :
SELECT * FROM img WHERE img_nom = :img_id+'-signature-directeur.png' ;


Pour info, j'utilise PDO pour communiquer avec ma BDD.

Merci par avance pour votre aide.

3 réponses

  1. DZ
     
    Bonjour yg_be,
    La requête qui fonctionne en direct dans la BDD, la Voici :

    SELECT * FROM img WHERE img_nom = "3-signature-directeur.png" ; 


    Voici une partie de mon code PHP :

    // Recherche si le directeur a deja signe ou non
            $sql = <<<SQL_STATEMENT
            SELECT * FROM img WHERE img_nom = :img_id+'-signature-directeur.png' ; 
            SQL_STATEMENT;
            $requete = $pdo->prepare($sql);
            $requete->setFetchMode(PDO::FETCH_ASSOC);
    		$requete->bindParam(':img_id', $img);
            $requete->execute();
            $result = $requete->fetchAll();
    		$requete->closeCursor();   
    
    		$directeur = $result[0]['img_nom'];
    		var_dump($directeur);
    		
    		if ($directeur == $img.'-signature-directeur.png')
    		{


    Voila, j'espère avoir bien répondu à votre demande.
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
        SELECT * FROM img WHERE img_nom = :img_id' ; 
      

      $requete->bindParam(':img_id', $img ." -signature-directeur.png");
      
      0
  2. DZ
     
    Merci Jordane45 pour votre aide. Jai réussi à obtenir ce que je voulais. J'ai juste eu un soucis avec votre code, la ligne

    $requete->bindParam(':img_id', $img ." -signature-directeur.png");


    Ne fonctionne pas j'ai du créer une variable :
    $test = $img."-signature-directeur.png";

    Avant d'utiliser bindParam.
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peut-être à cause de l'espace en trop:
      " -signature
      0
      1. DZ > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        non je l'ai aussi enlevé mais ça ne fonctionne pas non plus.
        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > DZ
         
        tu as raison, il est obligatoire d'utiliser une variable dans bind_param(). ce qui est logique, parce que c'est au moment de l'execute() que l'évaluation se fait.
        0