|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
Bonjour,
Je débute en php et cherche à réaliser un moteur de recherche à partir d'un formulaire à menu déroulant qui permette à la fois la recherche sur un seul critère ou sur plusieurs critères combinés si le checkbox "obligatoirement tout les critères" est activé. Pour ça j'ai adapté un script qui fonctionnait bien pour un formulaire par recherche en texte libre mais qui doit être adapté à un formulaire à menu déroulant Quelqu'un pourrait-il m'aider à adapter le script ci-dessous à mon formulaire à menu déroulant: si quelqu'un voit où ça coinçe?? Merci par avance Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Étudiant Inscription : mars 2006 Messages : 221 ![]() |
salut j'ai pas tré bien saisie c quoi ton probleme?
|
|
|
00
|
|
|
#3 | ||
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
J'avais d'abord fait un formulaire pour une recherche de cartes postales qui proposait 3 critères de recherche par commune, site et thème mais où les champs étaient en texte libre.
Le script ci-dessous fonctionnait mais maintentant je voudrais l'adapter à un formulaire dont les choix de chacun des 3 critères dans le formulaire se trouvent dans 3 menus déroulant, et où chacun des critères peut être choisi soit séparement soit combiné avec les autres, (avec le checkbox allcriteres)du coup le script ci-dessous ne marche plus et j'arrive pas l'adapter, peut-être pourrais-tu me dire où ça cloche? Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Étudiant Inscription : mars 2006 Messages : 221 ![]() |
je suis désolé je vai etre chiant mais c koi l'erreur?
|
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
ça me dit:
Notice: Undefined index: allcriteres in E:\Sites\gestion\archives\testbdd-archives\reponse_cartes_postales_multi.php on line 39 Notice: Undefined variable: finrequete in E:\Sites\gestion\archives\testbdd-archives\reponse_cartes_postales_multi.php on line 47 |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Étudiant Inscription : mars 2006 Messages : 221 ![]() |
tu di que ce script fonctionnait le probleme vien d'ailleur, mais ta requète et un peu bizzard je ne connai pas se formalisme (du moin a certain endroi)
|
|
|
00
|
|
|
#7 |
|
Membre actif
![]() Étudiant Inscription : mars 2006 Messages : 221 ![]() |
montre ton code de la page sur lesquelles il y a tes menu deroulant, a priori sa vien d'ailleur
|
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
La ligne 47 correpond à
$finrequete .= " Nom_commune LIKE '%$choix1%'"; Pour ça en enlevant le point après $finrequete ça marche mais le problème semble venir de la variable allcritères du checkbox Au cas où voilà mon formulaire de recherche: <html> <p>Recherche par commune </font>: <form action="reponse_cartes_postales_multi.php" method="POST" name="" id=""> <select name="communes" id="communes"> <option value="Albere">Albere (L')</option> <option value="Alenya">Alenya</option> <option value="Amélie les Bains">Amélie-les-Bains</option> <option value="Prats-de-Mollo">Prats de Mollo</option> </select> </p> <p>Recherche par sites naturels et édifices</font>: <select name="sites" id="sites"> <option value="Eglise (Albère)">Eglise (Albère)</option> <option value="Fontaine (Albère)">Fontaine (Albère)</option> </select></p> <p>Recherche par thème </font>: <select name="themes" id="themes"> <option value="Bois">Bois</option> <option value="Calvaire">Calvaire</option> <option value="Cheval">Cheval</option> <option value="Côte">Côte</option> </select> </p> <p><input name="valider" type="submit" value="valider"> <input name="effacer" type="reset" value="effacer"> </p> <p><input type="checkbox" name="allcriteres" value="oui">Obligatoirement tous les critères</p> </p> </form> </html> |
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
Ce scrit fonctionnait quand le formulaire ne proposait pas les choix dans 3 menus déroulant mais en texte libre.
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Pour le $finrequete commence par l'initialiser à "" avant de construire la chaîne.
Et pour le allcriteres je pense qu'il faut tester son existence avec un isset car je ne sais pas si sa valeur est transmise si la case est décochée. |
|
|
00
|
|
|
#11 | ||||
|
Membre actif
![]() Étudiant Inscription : mars 2006 Messages : 221 ![]() |
quan tu ne coche pas
Code :
soit tu met boutton radio, oui, non soi dans ta page qui recoi les information tu fait Code :
mais je me trompe peu etre, je suis un debutant moi aussi
__________________
Rod |
||||
|
|
00
|
|
|
#12 |
|
Membre actif
![]() Étudiant Inscription : mars 2006 Messages : 221 ![]() |
mais comme je suis debutant aussi je voudrai savoir a quoi sert le point avnt le = dans un ligne de code comme sa
merci
__________________
Rod |
|
|
00
|
|
|
#13 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
Merci, je vais essayer
|
|
|
00
|
|
|
#14 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
Pour le point j'avoue ne pas trop savoir à quoi ça peut servir j'expérimente un peu sur le tas : parfois ça marche si je l'enlève....
|
|
|
00
|
|
|
#15 | |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 27 ![]() |
Citation:
|
|
|
|
00
|
|
|
#16 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
Pour le isset ça me dit
Fatal error: Call to undefined function: issest() in E:\Sites\gestion\archives\testbdd-archives\scriptrecherche.php on line 41 mon code de reponse est le suivant: $choix1 = $_POST['communes']; $choix2 = $_POST['sites']; $choix3 = $_POST['themes']; if (issest($_POST['allcriteres'])) $operateur="AND"; else $operateur="OR"; if ($choix1 !=[""]) $finrequete = " Nom_commune LIKE '%$choix1%'"; if ($choix2 !=[""]) if ($finrequete != "") $finrequete .= " $operateur (Site1 LIKE '%$choix2%' OR Site2 LIKE '%$choix2%')"; else $finrequete .= " (Site1 LIKE '%$choix2%' OR Site2 LIKE '%$choix2%')"; if ($choix3 != "") if ($finrequete != "") $finrequete .= " $operateur (Theme1 LIKE '%$choix3%' OR Theme2 LIKE '%$choix3%')"; else $finrequete .= " (Theme1 LIKE '%$choix3%' OR Theme2 LIKE '%$choix3')"; if ($finrequete != "") $sql="SELECT * FROM Cartes_postales WHERE $finrequete"; else $sql="SELECT * FROM Cartes_postales"; |
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2005 Messages : 27 ![]() |
isset et pas issest
|
|
|
00
|
|
|
#18 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
oui merci ça marche
|
|
|
00
|
|
|
#19 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
Par contre du coup il me vient un autre problème c'est que dans le formulaire à 3 critères et à menu déroulant dans les choix des menu déroulant y jamais le choix aucun(e) (pour la cherche sur 3 critères par commune, par site, par thème)
Donc si on veut isoler les critères un à un , peut-être faut-il mettre un checkbox devant chaque critère? |
|
|
00
|
|
|
#20 |
|
Membre à l'essai
![]() Inscription : avril 2006 Messages : 102 ![]() |
En fait j'ai juste mis dans le formulaire des option vide du genre <option>Aucune</option> et ça a l'air de marcher
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com