Problème avec mon WHERE de ma requete pdo

Résolu/Fermé
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018 - 22 mars 2015 à 17:55
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018 - 22 mars 2015 à 23:11
Bonjour,
Je fais une requête PDO et lorsque je trie ma recherche avec le WHERE ma recherche ne donne rien mais sans le WHERE ca fonctionne bien.

Mon code est le suivant:
$req = $bdd->prepare('SELECT * FROM objet WHERE delete = yes ORDER BY date DESC');
				$req->execute(array());


Dois-je mettre des double quotes à mon yes ? J'ai déjà essayé et sans effet.

Merci pour votre aide

4 réponses

NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 332
22 mars 2015 à 18:07
"delete = yes"
Tu es sûr du yes ?
c'est pas true ou 1 ?
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
22 mars 2015 à 18:20
Au début oui mais j'ai changer le type de valeur et donc la réponse mais meme ca ca ne fonctionnait pas ...
0
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
22 mars 2015 à 18:27
Bonjour,

Commence par tester ta requête en direct dans ta BDD et regarde ce que ça donne

et oui... tu dois utiliser des quotes autour des valeurs de type "text/varchar..."

prends aussi l'habitude de "sortir" la requête de son execution
et ne mets pas d'array vide.... si tu n'as pas de paramètres à passer à ta requête.

$sql = "SELECT * FROM objet 
            WHERE delete = 'yes'
            ORDER BY date DESC";
$req = $bdd->prepare($sql);
$req->execute();

0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
Modifié par Aaymeric le 22/03/2015 à 22:50
J'ai fait ce que tu as dit et rien ne change. Le champ "delete" existe bien dans ma BDD et c'est bien un varchar (j'ai mis les quotes). C'est curieux, avec mes autres requêtes avec un trie tout fonctionne.

Enfaite j'ai une double requête avec des noms différent, est-il possible que ca soit ca qui pose problème ?

Mon code:
$req = $bdd->prepare("SELECT * FROM objet WHERE delete = 'yes' ORDER BY date DESC");
    $req->execute();
    while ($donnees = $req->fetch()){
     $description = $donnees['description'];
     if(strlen($description) >= 50){
      $description = substr($description, 0, 50).'...';
     }
     $req2 = $bdd->prepare('SELECT * FROM membres WHERE pseudo = ?');
     $req2->execute(array($donnees['pseudo']));
     while ($info = $req2->fetch()){
      echo' 
      <table>
      <tr>
           ...
           ...
           ...
0
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
22 mars 2015 à 23:00
As tu testé la requête en direct dans ta BDD ???
sachant que delete edt un mot clé utilisé par mysql...
renomme ton champ autrement. ..
0
Aaymeric Messages postés 78 Date d'inscription jeudi 29 septembre 2011 Statut Membre Dernière intervention 7 octobre 2018
22 mars 2015 à 23:11
Décidément tu as encore réussis à résoudre mon problème. Un grand merci Jordane45 :)
0