Systeme de recherche
Résolu/Fermé
Debonzy
Messages postés
34
Date d'inscription
lundi 14 janvier 2013
Statut
Membre
Dernière intervention
25 avril 2018
-
Modifié le 25 avril 2018 à 15:06
Debonzy Messages postés 34 Date d'inscription lundi 14 janvier 2013 Statut Membre Dernière intervention 25 avril 2018 - 25 avril 2018 à 15:39
Debonzy Messages postés 34 Date d'inscription lundi 14 janvier 2013 Statut Membre Dernière intervention 25 avril 2018 - 25 avril 2018 à 15:39
A voir également:
- Systeme de recherche
- Restauration systeme - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche adresse - Guide
- Comment refaire le système d'un ordinateur - Guide
- Recherche image - Guide
1 réponse
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
Modifié le 25 avril 2018 à 15:41
Modifié le 25 avril 2018 à 15:41
Bonjour,
Tu as oublié l'accolade fermante de ton while.
Mais tiens, essaye ça :
Au passage, je t'invite à lire (et à appliquer) ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et ça : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Tu as oublié l'accolade fermante de ton while.
Mais tiens, essaye ça :
<?php //connexion à la base de données require_once ("inclu/connexionMysql.inc.php"); //Traitement de la requete recherche //-------------------------------------------------------------// //récupération PROPRE des variables AVANT de les utiliser //-------------------------------------------------------------// $query = !empty($_POST['query']) ? $_POST['query'] : NULL; $filtre = !empty($_POST['filtre']) ? $_POST['filtre'] : NULL; if ($query){ // si utilisateur a entre quelque chose, on traite sa requete $query = preg_replace("#[^a-zA-Z ?0-9]#i", "", $query); switch($filtre){ case "nomAuteur": $strWhere = "WHERE nom_auteur LIKE ?"; break; case "typeOeuvre": $strWhere = "WHERE type_oeuvre LIKE ?"; break; case "nomOeuvre": $strWhere = "WHERE nom_oeuvre LIKE ?"; break; default: $strWhere = ""; break; } $sql = $sql = "SELECT * FROM bibliotheque_num " . $strWhere; $datas = array('%'.$query.'%'); try{ $req = $db->prepare($sql); $req->execute($datas); // on stocke le resultat dans un array $resultat = $req->fetchAll(PDO::FETCH_OBJ); }catch(Exception $e){ echo 'Erreur ! ' .$e->getMessage(); } //$count = $req->rowCount(); NE PAS UTILISER POUR UNE REQUETE SELECT COMME INDIQUE DANS LA DOCUMENTATION OFFICIELLE DE PHP PDO !! // A la place, on peut faire : $count = !empty($resultat) ? count($resultat) : 0; if(!empty($resultat)){ echo count($resultat)." résultat(s) trouvé(s) pour <strong>".$query."</strong><hr/>"; foreach($resultat as $data){ echo '#'.$data->ref.' - Nom : '.$data->nom_oeuvre.' - Auteur: '.$data->nom_auteur.' - Type: '.$data->type_oeuvre.'<br/>'; } } else { echo "0 résultat trouvé pour <strong>$query</strong><hr/>"; } } ?>
Au passage, je t'invite à lire (et à appliquer) ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et ça : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
25 avril 2018 à 15:39
Cordialement