salut les amis j'ai un petit probleme !! lorsque je creer ma barre de recherche et que je lance sa m'affiche Fatal error: Call to a member function rowCount() on a non-object in C:\wamp\www\Manpower+\registre\rech.php on line 18
Quelqu'un pour maider merci
voici mon code source
<meta charset="utf-8" /> <?php
$bdd = new PDO('mysql:host=localhost;dbname=manpower;charset=utf8','root',''); $articles = $bdd->query('SELECT * FROM articles ORDER BY id DESC'); if(isset($_GET['q']) AND !empty($_GET['q'])) { $q = htmlspecialchars($_GET['q']); $articles = $bdd->query('SELECT * FROM articles WHERE firstname LIKE "%'.$q.'%" ORDER BY id DESC'); if($articles->rowCount() == 0) { $articles = $bdd->query('SELECT * FROM articles WHERE CONCAT(firstname, lastname) LIKE "%'.$q.'%" ORDER BY id DESC'); } } ?> <form method="GET"> <input type="search" name="q" placeholder="Recherche..." /> <input type="submit" value="Valider" /> </form> <?php if($articles->rowCount() > 0) { ?> <ul> <?php while($a = $articles->fetch()) { ?> <li><?= $a['firstname'] ?></li> <br>
Et htmlspecialchars n'a RIEN à faire là et la requête devrait être préparée, tu as une injection SQL !
Tu pourrais t'économiser la première requête en la mettant en else de if(isset($_GET['q']) AND !empty($_GET['q'])) {. Puisque si cette dernière condition est vraie, tu ne fais rien de son résultat en plus.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli