Bonsoir,
J'arrive bientôt (enfin) à la fin de mon site que je n'aurais jamais réalisé sans votre aide. Il me reste un tout petit truc à faire, pas si petit que ça : Une recherche :
J'ai donc crée le formulaire de Recherche
Voici le résultat côté PHP avec un petit ECHO pour vérifier que les valeurs sont bien renvoyées et ça fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <form method="post" action="traitement_recherche.php"> <p class="titre">Sélectionner les activités de votre choix</p> <?php $reponse = $bdd->query('SELECT * FROM activite'); while ($donnees = $reponse->fetch()) { ?> <input type="checkbox" name="ract[]" id="ract" value="<?php echo $donnees['nom_act'];?>"/> <label for="ract"><?php echo $donnees['nom_act'];?></label><br /> </p> <?php } $reponse->closeCursor(); ?> <p class="titre"><label for="optliv">Souhaitez-vous vous faire livrer ?</label></p> <select name="optliv" id="optliv" selected="v"> <p><option value="v">--</option></p> <p><option value="oui">Oui</option></p> <p><option value="non">Non</option></p> </select> <p class="titre"><label for "optemp">Souhaitez-vous prendre un plat à emporter ?</label></p> <select name="optemp" id="optempt selected="v"> <p><option value="v">--</option></p> <p><option value="oui">Oui</option></p> <p><option value="non">Non</option></p> </select> <p><input class="submit" type="submit" value="Valider ma recherche" /></p> </form>
J'étais très content de moi !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <h3>Voici le résultat de votre recherche :</h3> <?php //traitement des variables retournées par le formulaire recherche //Traitement des cases à cochées if(isset($_POST['ract'])) { //sera vrai si au moins un moins un checkbox est coché foreach($_POST['ract'] as $act) { echo $act; } } //traitement des données par liste echo $_POST['optliv']; echo $_POST['optemp'];Surtout pour afficher les résultats Chexbox.
Mais... viens la requête et là... Par exemple, ici, je souhaiterai qu'il m'affiche uniquement les restaurants avec les activités sélectionnées et... ERROR !
L'erreur me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $reponse = $bdd->query('SELECT * FROM restos WHERE spe1 LIKE '.$act.''); while ($donnees = $reponse->fetch()) { ?> <p>Nom du restaurant : <?php echo $donnees['nom']; ?></p> <?php } ?>
Donc si j'ai bien traduit, il me dit que j'appelle une partie de la fonction qui n'est pas un objet ? ! ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\DjibRestos\traitement_recherche.php on line 63
Si j'ai bien compris la traduction, sachez que je n'ai pas compris l'erreur ! Comment doit-on rendre un non objet en objet ?
Merci de vos explications
Partager