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 !

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.
[php]//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);
}[/php]
Le formulaire :
[code]<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">[/code]
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 ! :-)