aide pour finaliser script recherche multicriteres

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : aide pour finaliser script recherche multicriteres

par coxine » 29 nov. 2008, 13:35

oups je réponds un peu tard !
j'ai résolu mon pti pb
avec une requete complexe et un implode()
merci !!!

par Cyrano » 24 oct. 2008, 18:17

Te poses-tu les bonnes questions ? :-k

Lors de la soumission du formulaire, la page d'arrivée reçoit-elle les données attendues ?... par exemple...

par coxine » 24 oct. 2008, 16:50

hello cyrano et merci de ta réponse !
oui j'ai vu et j'ai corrigé, mais cela ne donne rien
je ne vois pas d'où ça vient
Si j'isole les requêtes, cela fonctionne bien évidemment si je renvoie sur une page recherche.php par exemple pour exécuter la seconde.
Mais ce n'est pas ce que je veux.

par Cyrano » 24 oct. 2008, 16:09

Détail peut-être important :
- Dans le code PHP, tu testes l'existence des paramètres (GET) "ID_langue", "ID_pays" ou encore "ID_type";
- Dans l'url d'action de ton formulaire, il y a les paramètres "langue", "pays" et "type" (entre autres)
Donc il y a au départ un problème d'absence de convention de noms... :-k

aide pour finaliser script recherche multicriteres

par coxine » 24 oct. 2008, 15:35

Hello à tous
:-)
Je planche sur un formulaire de recherche multicritères
Il y a effectivement plein de posts à ce sujet..mais je ne solutionne pas mon pti souci :
- si on n'appuie pas sur "rechercher" alors j'exécute une requête
- si on fait une recherche en sélectionnant des valeurs des menus déroulants, alors on exécute une autre requête.
//si pas de recherche, on affiche le mois en cours
if(!isset($_GET['bouton'])) {
							mysql_select_db($database, $connection);
							$query_retraites = "SELECT * FROM retraites, retraite_langues, retraite_pays, retraite_foyers, retraite_type 
							WHERE retraites.ID_langue=retraite_langues.ID_langue AND retraites.ID_pays=retraite_pays.ID_pays AND retraites.foyer=retraite_foyers.foyer 
							AND retraites.ID_type=retraite_type.ID_type AND date_debut >= NOW() AND MONTH(date_debut) = '".$mois."' 
							AND YEAR(date_debut) >= YEAR(NOW()) ORDER BY retraites.date_debut ASC";
							$retraites = mysql_query($query_retraites, $connection) or die(mysql_error());
							$row_retraites = mysql_fetch_assoc($retraites);
							$totalRows_retraites = mysql_num_rows($retraites);
							}
							else{
								$collangue_retraites = "-1";
								if (isset($_GET['ID_langue'])) {
								$collangue_retraites = (get_magic_quotes_gpc()) ? $_GET['ID_langue'] : addslashes($_GET['ID_langue']);
								}
								$colpays_retraites = "-1";
								if (isset($_GET['ID_pays'])) {
								$colpays_retraites = (get_magic_quotes_gpc()) ? $_GET['ID_pays'] : addslashes($_GET['ID_pays']);
								}
								$coltype_retraites = "-1";
								if (isset($_GET['ID_type'])) {
								$coltype_retraites = (get_magic_quotes_gpc()) ? $_GET['ID_type'] : addslashes($_GET['ID_type']);
								}
								mysql_select_db($database, $connexion);
								$query_retraites = sprintf("SELECT retraites.ID_retraite, retraites.ID_langue, retraites.ID_pays, retraites.ID_type, 
retraites.description, retraites.date_debut, retraites.date_fin, retraites.foyer, retraite_langues.ID_langue, retraite_langues.langue, retraite_pays.ID_pays, 
retraite_pays.pays, retraite_type.ID_type, retraite_type.type 
								FROM retraites, retraite_langues, retraite_pays, retraite_type 
								WHERE retraites.id_langue = '%s' 
								AND retraites.id_pays = '%s' 
								AND retraites.id_type = '%s' 
								AND retraite_langues.ID_langue=retraites.ID_langue 
								AND retraite_pays.ID_pays=retraites.ID_pays 
								AND retraite_type.ID_type=retraites.ID_type 
								AND retraites.date_debut >= NOW() AND YEAR(date_debut) >= YEAR(NOW()) 
								ORDER BY retraites.date_debut ASC ", $collangue_retraites,$colpays_retraites,$coltype_retraites);
								$query_limit_retraites = sprintf("%s LIMIT %d, %d", $query_retraites, $startRow_retraites, $maxRows_retraites);
								$retraites = mysql_query($query_limit_retraites, $connection) or die(mysql_error());
								$row_retraites = mysql_fetch_assoc($retraites);
}
Le formulaire :

Code : Tout sélectionner

<form id="form1" name="form1" method="get" action="index.php?langue=<?php echo $row_retraites['pays']; ?> &pays=<?php echo $row_retraites['pays']; ?> &type=<?php echo $row_retraites['type']; ?> &startday=<?php echo $row_retraites['date_debut']; ?> &bouton=Rechercher">
Je dois faire autrement j'imagine;
Car là j'ai bien la première requête qui s'exécute, mais si je sélectionne des critères, rien ne se passe, je reste sur l'affichage de la première requête.

Merci de votre aide ! :-)