Partage
  • Partager sur Facebook
  • Partager sur Twitter

barre de recherche fatal error

    17 novembre 2017 à 11:51:43

    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>
          
       <?php } ?>
       </ul>
       <?php } else { ?>
    Aucun résultat pour: <?= $q ?>...
    <?php } ?>

    -
    Edité par StephaneAdannou 17 novembre 2017 à 11:52:26

    • Partager sur Facebook
    • Partager sur Twitter
      17 novembre 2017 à 13:45:38

      Salut,

      t'es pas gentil toi, tu as un bouton pour ajouter le code et même si,  tu utilises une petite taille de police.

      • Partager sur Facebook
      • Partager sur Twitter
      le bienfait n'est jamais perdu
        17 novembre 2017 à 13:56:15

        C'est que ta requête foire, actives les erreurs PDO/SQL pour savoir en quoi.

        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.

        -
        Edité par julp 17 novembre 2017 à 14:07:49

        • Partager sur Facebook
        • Partager sur Twitter

        barre de recherche fatal error

        × 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.
        • Editeur
        • Markdown