Requête de recherche dans la BDD

Résolu/Fermé
markaz Messages postés 331 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 16 septembre 2015 - 11 mars 2015 à 16:21
markaz Messages postés 331 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 16 septembre 2015 - 11 mars 2015 à 18:08
Bonjour, J'ai une requête qui permet de rechercher selon des critères dans la BDD et retour le résultat à afficher. le souci est que la requête marche pas lorsqu'elle faire à partir des variable enoyées à la fonction de recherche. Mais quand je saisi directement dans la fonction les valeurs des variable tous est bon.
Après 2h de je ne comprend pas toujours à est le due le problème.

Fonction recherche avec variable qui ne renvoie rien
if(!empty($_GET['article'])) {
$list = searchArt2('code', $_GET['article'], $_SESSION['lang'], $_SESSION['lieu']);
}


function searchArticle($filter, $info, $lang, $lieu) {
$q = 'SELECT * FROM article WHERE '.$filter.' = "'.$info.'" AND lang = "'.$lang.'" AND lieu ="'.$lieu.'"' ;
$q = $connect_db->query($q);
$q->setFetchMode(PDO::FETCH_OBJ);
$list = $q->fetchAll();

return $list;
}


Par contre cette requête fonctionne
function searchArticle($filter, $info, $lang, $lieu) {
$q = 'SELECT * FROM article WHERE code = "prg" AND lang = "fr" AND lieu = "ld"' ;
$q = $connect_db->query($q);
$q->setFetchMode(PDO::FETCH_OBJ);
$list = $q->fetchAll();

return $list;
}


NB: voici le contenu de la requête qui marche:
SELECT * FROM article WHERE code = "pgr" AND lang = "fr" AND lieu ="ld"




2 réponses

jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
11 mars 2015 à 16:25
Bonjour,

Peux tu tester ça et nous dire ce que ça t'affiche ?
 $q = "SELECT * 
           FROM article 
           WHERE $filter = '$info' 
           AND lang = '$lang' 
           AND lieu ='$lieu' ";

echo "<pre>Requete:<br>".$q;
 $query = $connect_db->query($q);
 $query->setFetchMode(PDO::FETCH_OBJ);
 $list = $query->fetchAll();
 
   return $list;

0
markaz Messages postés 331 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 16 septembre 2015 5
Modifié par markaz le 11/03/2015 à 16:53
Merci voilà ce qui s'affiche:

Requete:
SELECT * 
FROM article
WHERE code = 'rsh'
AND lang = 'fr'
AND lieu ='ld'


valeur renvoyée : array(0) { }

ces même valeurs de variables quand les insert directement dans la requête il n y a pas de souci la requête renvoie les données.
0
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
11 mars 2015 à 17:35
Tu as vu que la valeur de code n'est pas la même entre les deux requêtes ?
rsh d'un côté prg de l'autre.... normal ?
0
markaz Messages postés 331 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 16 septembre 2015 5
11 mars 2015 à 17:38
les valeurs sont lié à mon menu mais que se soit rsh ou prg le résultat est le même ça ne marche pas.
0
markaz Messages postés 331 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 16 septembre 2015 5
11 mars 2015 à 18:08
J'ai fini par trouver le problème qui se posait au niveau de mes codes. les valeurs des variables ne correspondaient avec celle de table.
0