Récupérer une valeur précise

Résolu
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. 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. Modérateur
        SELECT * FROM img WHERE img_nom = :img_id' ; 
      

      $requete->bindParam(':img_id', $img ." -signature-directeur.png");
      
      0
  2. 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. Contributeur
      peut-être à cause de l'espace en trop:
      " -signature
      0
    2. @yg_benon je l'ai aussi enlevé mais ça ne fonctionne pas non plus.
      0
    3. Contributeur
      @DZtu 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