Récupérer une valeur précise

Résolu/Fermé
DZ - 13 avril 2021 à 14:40
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 - 13 avril 2021 à 16:20
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

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
Modifié le 13 avril 2021 à 14:46
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
0
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
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
13 avril 2021 à 15:02
  SELECT * FROM img WHERE img_nom = :img_id' ; 

$requete->bindParam(':img_id', $img ." -signature-directeur.png");
0
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
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
13 avril 2021 à 15:55
peut-être à cause de l'espace en trop:
" -signature
0
DZ > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
13 avril 2021 à 16:10
non je l'ai aussi enlevé mais ça ne fonctionne pas non plus.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > DZ
13 avril 2021 à 16:20
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