Mysql
 sql >> Base de données >  >> RDS >> Mysql

La recherche affiche tous les produits

Votre formulaire n'est pas correctement structuré - le champ "user_query" est en dehors du formulaire donc $_GET['user_query'] ne serait jamais fixé. Essayez de changer ceci :

<form class="form-wrapper cf">
    <input type="text" name="user_query" placeholder="Search here..." required>
  <form method="get" action="results.php" enctype="multipart/form-data">
    <button type="submit" name="search" value="Search">Search</button>
</form> 

À quelque chose comme ça :

<div class="form-wrapper cf">
    <form method="get" action="results.php" enctype="multipart/form-data">
        <input type="text" name="user_query" placeholder="Search here..." required>
        <button type="submit" name="search" value="Search">Search</button>
    </form> 
</div>

De plus, comme plusieurs autres l'ont noté, cela est sensible à l'injection SQL. Ce message traite d'un scénario très similaire au vôtre :Comment puis-je empêcher l'injection SQL dans PHP ?

Je vous suggère fortement d'exécuter votre code généré via un service de validation afin de détecter les erreurs dans votre code HTML. Assurez-vous d'utiliser le code HTML généré (copier depuis "afficher la source" dans le navigateur), pas seulement le code de votre fichier php car le validateur ne comprendra pas le PHP. Le consortium WWW a un bon outil :http://validator.w3.org/#validate_by_input