Permettre ma barre de recherche affiche avatar
Résolu
martin
-
martin -
martin -
Bonjour,
Je suis débutant en php et PDO, je voudrais savoir comment permettre a ma barre de recherche d'afficher la photo de profil de la personne rechercher, svp. Pour l'insatant, je trouve la liste des noms et prenoms voici ma page ou j'ai coder:
EDIT : Ajout des balises de code (jordane)
Voila, déjà je trouve qu'il n'est pas top top et efficace car je trouve les personne due en tapant le prénom, je voudrais taper le prénom et noms mais c'est beaucoup plus compliqué. Déjà cela serai en grand pas si je pouvais afficher la photo de profil des personnes?
Je vous remercie d'avance
Je suis débutant en php et PDO, je voudrais savoir comment permettre a ma barre de recherche d'afficher la photo de profil de la personne rechercher, svp. Pour l'insatant, je trouve la liste des noms et prenoms voici ma page ou j'ai coder:
{ $output = ''; if(isset ($_POST['search'])){ $searchq = $_POST['search']; $searchq = preg_replace ("#[^0-9a-z]#i","",$searchq); try{ $bdd = new PDO('mysql:host=localhost;dbname=rs;charset=utf8', 'root', ' '); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } $req = $bdd->prepare("SELECT * FROM utilisateurss WHERE Prenom LIKE '%$searchq%' OR NOM LIKE '%$searchq%' "); $req->execute(); $count = $req->rowCount(); if($count == 0){ echo 'Auncun résultat ...'; }else { while($row = $req->fetch(PDO::FETCH_ASSOC)){ $Prenom = $row['Prenom']; $NOM = $row['NOM']; $id = $row['id']; $avatar = $row['avatar']; $output .= '<div> '.$Prenom.' '.$NOM.' </div>'; print ("$output"); } $req->closeCursor(); } } }
EDIT : Ajout des balises de code (jordane)
Voila, déjà je trouve qu'il n'est pas top top et efficace car je trouve les personne due en tapant le prénom, je voudrais taper le prénom et noms mais c'est beaucoup plus compliqué. Déjà cela serai en grand pas si je pouvais afficher la photo de profil des personnes?
Je vous remercie d'avance
A voir également:
- Permettre ma barre de recherche affiche avatar
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Avatar facebook - Guide
- Windows 11 barre des taches a gauche - Guide
- Barre de défilement - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, où se trouvent les photos des profils?
Bonjour,
Quelques erreurs dans ton code...
Et quelques bonnes pratiques que tu devrais appliquer dès maintenant !
Voici
Déjà.. tu places le code de connexion à ta bdd dans un fichier à part que tu n'auras qu'à inclure dans tes autres pages
au lieu de le copier/coller partout sur ton site.
Le jour ou tu changes de BDD.. tu seras bon pour aller remodifier chacune de tes pages une par une !
Donc :
Puis dans ton code :
Quelques erreurs dans ton code...
Et quelques bonnes pratiques que tu devrais appliquer dès maintenant !
Voici
Déjà.. tu places le code de connexion à ta bdd dans un fichier à part que tu n'auras qu'à inclure dans tes autres pages
au lieu de le copier/coller partout sur ton site.
Le jour ou tu changes de BDD.. tu seras bon pour aller remodifier chacune de tes pages une par une !
Donc :
<?php //connexion à la bdd // Fichier : cnxbdd.php try{ $bdd = new PDO('mysql:host=localhost;dbname=rs;charset=utf8', 'root', ' '); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
Puis dans ton code :
<?php //activation de l'affichage des erreurs PHP ! (A mettre au début de chacune de tes pages !! ) error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion à la bdd require_once "cnxbdd.php"; //récupération PROPRE des variables AVANT de les utiliser $searchq = !empty($_POST['search']) ? preg_replace ("#[^0-9a-z]#i","",$_POST['search']) : ''; if(isset ($_POST['search'])){ $sql = "SELECT * FROM utilisateurss WHERE Prenom LIKE '%$searchq%' OR NOM LIKE '%$searchq%' "; //pour CHAQUE requête mettre un bloc TRY/CATCH !! try{ $req = $bdd->prepare($sq); $req->execute(); //$count = $req->rowCount(); //le row COUNT est à abolir pour les requêtes SELECT ! (voir la doc de pdo ! ) // A la place : $resultat = $req->fetchAll(); $count = count($resultat); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } if($count == 0){ echo 'Auncun résultat pour ' .$searchq; }else { foreach($resultat as $row){ $Prenom = $row['Prenom']; $NOM = $row['NOM']; $id = $row['id']; $avatar = $row['avatar']; $output .= '<div class="utilisateurs">'; $output .= '<img src="/avatar/'.$avatar.'">'; $output .= '<span>'.$Prenom.' '.$NOM.'</span> '; $output .= '</div>'; } // on affiche le HTML une fois la couble terminée ! print ($output); }
Tu fais une recherche sur deux champs séparés en BDD...
Si tu veux faire une recherche groupée... tu dois pouvoir faire :
Si tu veux faire une recherche groupée... tu dois pouvoir faire :
$sql = "SELECT * FROM utilisateurss WHERE Prenom LIKE '%$searchq%' OR NOM LIKE '%$searchq%' OR concat(NOM,' ',Prenom) LIKE '%$searchq%' OR concat(Prenom,' ',NOM) LIKE '%$searchq%' ";
est-ce le cas?