Partage
  • Partager sur Facebook
  • Partager sur Twitter

Moteur de recherche en php et concaténation requêt

Moteur de recherche en php

    20 juin 2018 à 14:56:01

    Salut à tous, je suis un debutant en pdo

    j'ai modifié le code mais quand je lance la recherche  rien ne s'affiche

    je ne maîtrise pas bien les requêtes préparées donc aider moi sur ce plan


    <?php
    
    include("connexion.php");
    
    $info=$conn->query('SELECT client FROM info ')or die(print_r($conn->erroInfo()));
    
    if (isset($_GET['q']) AND !empty($_GET['q']))
    
    {   
    
    
    $info =$conn->query('SELECT client  FROM info WHERE  client LIKE "%'.$q.'%"' ) or die(print_r($conn->erroInfo()));;
      
    } 
    
    
    ?>
    
    <!DOCTYPE html>
    <html  >
    <head>
      <title>Moteur de recherche</title>
    </head>
    <body  >
    
    <form method="GET" >
       
     
      <h2 align="left" > 
    
      Entrer votre recherche: <input type="search" name="q" maxlength="80" size="80"  >
    
    
     <input type="submit" value="rechercher">
    
    <ul>
    
     <?php while ( $a = $info->fetch()) { ?> 
    
    <li>
      <?=$a['client']?> 
    </li> 
    
    <?php } ?> 
    
    
    </ul>
    
     </h2>
    
    </form>
     
    </body>
    </html>
    


    -
    Edité par 3NDebutant 20 juin 2018 à 18:41:06

    • Partager sur Facebook
    • Partager sur Twitter
      20 juin 2018 à 14:58:04

      Bonjour, en activant les erreurs PDO tu auras les raisons de ton problème ;)
      • Partager sur Facebook
      • Partager sur Twitter
      Comar
        20 juin 2018 à 15:00:42

        Euh, ouais, le LIKE sur 50 champs comme ça, je ne crois pas. En plus, en clause WHERE, les , n'ont rien à y faire, ce n'est pas un opérateur logique comme AND ou OR (par exemple).

        > $info=$conn->query=(

        Le = n'a rien à faire là. Le htmlspecialchars non plus à vrai dire, ce n'est pas comme ça qu'on se protège d'une injection SQL puisqu'elle est prévue pour les XSS. Et si tu préparais tout simplement ta requête ?

        -
        Edité par julp 20 juin 2018 à 15:04:06

        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2018 à 15:39:58

          voici le message d'erreur
          Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\test\form_recherche.php on line 47
          • Partager sur Facebook
          • Partager sur Twitter
            21 juin 2018 à 17:06:35

            Pour afficher tes clients, je te recommande "foreach".

            <?php
            
            foreach($info->fetchall() as $client){
              echo "<li>".$client['client']."</li>";
            }


            Et pour ta requête de recherche, tu fais autant de AND ou OR que tu as de champs à mettre dans ta recherche.

            -
            Edité par kbrone 21 juin 2018 à 17:06:54

            • Partager sur Facebook
            • Partager sur Twitter

            Moteur de recherche en php et concaténation requêt

            × 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