Bonjour à tous,
Voici mon probleme,
J'ai créer un "formulaire" de recherche multicriteres afin de faciliter ces dernieres aux visiteurs du site.
Cependant mon probleme est que j'ai bien ma recherche muticritere qui se fait mais cela ne m'affiche rien.
Les codes sont des codes récupérés et modifiés pour qu'ils fonctionnent sur ma base.
Je travail avec Mysql et Php.
Voici le code de mon premier fichier (celui de la recherche multicritéres). Il permet au visiteur de choisir dans des menu déroulant des choix vis à vis de leurs préférences. C'est choix son des valeurs de ma table.
Et une fois que l'on clique sur "valider" ça renvoie à result_plantes.php et c'est là que ça coince (ou peut être avant, j'avoue que je seche bien là!)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 <?php include('config.php') ?> <form method="POST" action="result_plantes.php"> Exposition à la lumiére <SELECT Name = "expo"> <?php //menu déroulant appel mysql en excluant les doublons là, c'est pour l'exposition de la plante $rep= mysql_query("SELECT distinct exposition FROM `plantes` ORDER BY 'exposition'"); //utilisation d'un while dans le but d'afficher un ou plusieurs nom while ($ligne_liste = mysql_fetch_array($rep)) { ?> <OPTION Value = "<?php echo $ligne_liste['exposition']; ?>"><?php echo $ligne_liste['exposition']; ?></OPTION> <?php } // Je ferme ma boucle ?> </SELECT> <br /> <br /> Utilisation <SELECT Name = "utilisation"> <?php $rep= mysql_query("SELECT distinct utilisation FROM `plantes` ORDER BY 'utilisation'"); while ($ligne_liste = mysql_fetch_array($rep)) { ?> <OPTION Value = "<?php echo $ligne_liste['utilisation']; ?>"><?php echo $ligne_liste['utilisation']; ?></OPTION> <?php } ?> </SELECT> <br /> <br /> Catégorie de la plante <SELECT Name = "categorie"> <?php $rep= mysql_query("SELECT distinct categorie FROM `plantes` ORDER BY 'categorie'"); while ($ligne_liste = mysql_fetch_array($rep)) { ?> <OPTION Value = "<?php echo $ligne_liste['categorie']; ?>"><?php echo $ligne_liste['categorie']; ?></OPTION> <?php } ?> </SELECT> <br /> <br /> Choisir le type de feuillage <SELECT Name = "feuillage"> <?php $rep= mysql_query("SELECT distinct feuillage FROM `plantes` ORDER BY 'feuillage'"); while ($ligne_liste = mysql_fetch_array($rep)) { ?> <OPTION Value = "<?php echo $ligne_liste['feuillage']; ?>"><?php echo $ligne_liste['feuillage']; ?></OPTION> <?php } ?> </SELECT> <br /> <br /> <input type = "submit" value = "Valider"/>
voici le code minimisé avec un seul echo (ça sert à rien que je les mettent tous tant que ça fonctionne pas .
Si vous avez des suggestion (pas forcément la solution) je suis preneur. Ha oui et en passant pourquoi mes menus déroulant ne s'affiche pas en utf-8?
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 <?php include('config.php')?> <?php //Test si les $_POST sont vides if (!empty($_POST['exposition'])) { $exposition = $_POST["exposition"]; } // on récupère les critères sélectionnés extract($_POST); $i = 0; // si la variable est présente, on lui affecte une place dans le tableau 'choix[]', qui nous servira ensuite à construire le WHERE de la requête. if(!empty($exposition)) { $choix[$i++] = "exposition = '$exposition'"; } // etc... tu fais pareil pour chaque critère // on insère les éléments remplis dans une variable $critere, en commençant par la première occurrence, puis on boucle $critere = $choix[0]." "; for($j=1;$j<$i;$j++) { $critere .= " AND ".$choix[$j]." "; } // enfin on fait la requête si $i >0, ça veut dire qu'il y a des critères if($i > 0) { // requete de selection $sql = "SELECT * FROM 'plantes' WHERE $critere ORDER BY plantes"; $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ); } // si $i = 0, alors l'utilisateur n'a pas saisi de critère, là soit on fait la même requete mais sans "WHERE $critere", soit on lui demande de saisir au moins un critère. else { $sql = "SELECT * FROM 'plantes' ORDER BY plantes"; } //récupération avec mysql_fetch_array(), et affichage de nos résultats : echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" ); echo( "<tr> <td><div align=\"center\">Exposition</div></td> </tr>" ); while( $result = mysql_fetch_array( $requete ) ) { echo( "<tr>\n" ); echo( "<td><div align=\"center\">".$result['exposition']."</div></td>\n" ); //echo( "<td><div align=\"center\"><form method='post' action='contact3.php'><input type='submit' value='Détails'/></form></div></td>\n" ); echo( "</tr>\n" ); } echo( "</table><br>\n" ); ?>
Merci par avance de votre aide
Partager