Demande d'aide formulaire de recherche php mysql

Petit nouveau ! | 1 Messages

13 juil. 2019, 00:46

Bonjour,

Je cherche à faire un formulaire de recherche avec 4 select sur une page afin d'afficher sur cette même page les résultats une fois cliqué sur submit.

Cependant je n'arrive pas à faire apparaître les résultats de ma recherche...

Voici le code des select :

Code : Tout sélectionner

<form method="post" action="pneumatiques.php"> <div class="input-field col s12 m12 l12"> <select name="largeur" autocomplete="off"> <option value="">Choisissez la largeur</option> <?php $sql = "SELECT DISTINCT largeur from pneumatiques ORDER BY largeur ASC"; $query = $dbh -> prepare($sql); $query->execute(); $results=$query->fetchAll(PDO::FETCH_OBJ); $cnt=1; if($query->rowCount() > 0) { foreach($results as $resultt) { ?> <option value="<?php echo htmlentities($resultt->largeur);?>"><?php echo htmlentities($resultt->largeur);?></option> <?php }} ?> </select> &nbsp;&nbsp; <select name="hauteur" autocomplete="off"> <option value="">Choisissez la hauteur</option> <?php $sql = "SELECT DISTINCT hauteur from pneumatiques ORDER BY hauteur ASC"; $query = $dbh -> prepare($sql); $query->execute(); $results=$query->fetchAll(PDO::FETCH_OBJ); $cnt=1; if($query->rowCount() > 0) { foreach($results as $resultt) { ?> <option value="<?php echo htmlentities($resultt->hauteur);?>"><?php echo htmlentities($resultt->hauteur);?></option> <?php }} ?> </select> &nbsp;&nbsp; <select name="diametre" autocomplete="off"> <option value="">Choisissez le diamétre</option> <?php $sql = "SELECT DISTINCT diametre from pneumatiques ORDER BY diametre ASC"; $query = $dbh -> prepare($sql); $query->execute(); $results=$query->fetchAll(PDO::FETCH_OBJ); $cnt=1; if($query->rowCount() > 0) { foreach($results as $resultt) { ?> <option value="<?php echo htmlentities($resultt->diametre);?>"><?php echo htmlentities($resultt->diametre);?></option> <?php }} ?> </select> &nbsp;&nbsp; <select name="charge" autocomplete="off"> <option value="">Choisissez la charge</option> <?php $sql = "SELECT DISTINCT charge from pneumatiques ORDER BY charge ASC"; $query = $dbh -> prepare($sql); $query->execute(); $results=$query->fetchAll(PDO::FETCH_OBJ); $cnt=1; if($query->rowCount() > 0) { foreach($results as $resultt) { ?> <option value="<?php echo htmlentities($resultt->charge);?>"><?php echo htmlentities($resultt->charge);?></option> <?php }} ?> </select> </div> <br> <center> <input type="submit" class="pure-button pure-button-primary" name="recherche" value="Envoyer"></center> </form>
Puis en dessous le code qui devrait m'afficher les résultats en fonction des choix fait dans les select :

Code : Tout sélectionner

<?php $largeur=($_POST['largeur']); $hauteur=($_POST['hauteur']); $diametre=($_POST['diametre']); $charge=($_POST['charge']); $sql="SELECT * FROM pneumatiques WHERE largeur=:largeur AND hauteur=:hauteur AND diametre=:diametre AND charge=:charge"; $query = $bdd->prepare($sql); $query->bindParam(':largeur',$largeur,PDO::PARAM_STR); $query->bindParam(':hauteur',$hauteur,PDO::PARAM_STR); $query->bindParam(':diametre',$diametre,PDO::PARAM_STR); $query->bindParam(':charge',$charge,PDO::PARAM_STR); $query->execute(); $results=$query->fetchAll(PDO::FETCH_OBJ); $cnt=1; if($query->rowCount() > 0) { foreach($results as $result) { ?> <center><table class="pure-table table-bordered"> <tr> <th width="150"><center>Constructeur</center></th> <th width="150"><center>Reference</center></th> <th width="150"><center>Designation</center></th> <th width="200"><center>Dimension</center></th> <th width="100"><center>Saison</center></th> <th width="260"><center>Prix Public HT</center></th> </tr> <tr> <td><center><?php echo htmlentities($result->constructeur);?></center></td> <td><center><?php echo htmlentities($result->reference);?></center></td> <td><center><?php echo htmlentities($result->designation);?></center></td> <td><center><?php echo htmlentities($result->dimension);?></center></td> <td><center><?php echo htmlentities($result->saison);?></center></td> <td><center><?php echo htmlentities($result->prix);?></center></td> </tr> <?php $cnt++;} }?> </table></center>
Si l'un de vous peut m'aider je lui en serais vraiment reconnaissant.

Merci d'avance et bonne soirée =)

Petit nouveau ! | 5 Messages

15 juil. 2019, 11:14

bonjour
c'est un probleme simple normalement si tu fait juste une petite recherche.
il faut nous donner les erreurs pour voir un peu où tu es coincé mais juste comme ca je vois qu'il te manque une boucle sur la dexieme ligne de ton tableau pour afficher les resulta

Mammouth du PHP | 1104 Messages

15 juil. 2019, 14:17

quand vous sélectionnez 4 valeurs non nulles, existe-t-il un pneu qui répond aux 4 critères ?

quand c'est cette valeur qui est sélectionnée :
<option value="">Choisissez la charge</option>
votre code recherche une charge dont le champ vaut "". si tous les pneus ont une valeur pour la charge alors aucun pneu ne ressort.

il faut donc ne mettre dans les conditions du where que les champs parmi les 4 où l'utilisateur a choisi une valeur.