Récupérer une valeur précise [Résolu]

Signaler
-
Messages postés
15290
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 avril 2021
-
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

Messages postés
15290
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 avril 2021
837
bonjour,
peux-tu partager une requête qui fonctionne en direct sur ta base de données?
peux-tu aussi partager ton code PHP?
merci de tenir compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
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.
Messages postés
32155
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 avril 2021
3 420
  SELECT * FROM img WHERE img_nom = :img_id' ; 

$requete->bindParam(':img_id', $img ." -signature-directeur.png");
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.
Messages postés
15290
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 avril 2021
837
peut-être à cause de l'espace en trop:
" -signature
>
Messages postés
15290
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 avril 2021

non je l'ai aussi enlevé mais ça ne fonctionne pas non plus.
Messages postés
15290
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 avril 2021
837 > 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.