Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2603 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  problème recherche multi critère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème recherche multi critère

n°2197401
ojediop
Posté le 13-07-2013 à 18:18:02  profilanswer
 

bonjour à tous j'ai un petit problème avec mon code et je galére depuis quelques jour. j'ai vraiment besoin d'aide pour m'en sortir.
voila j'ai un formulaire de recherche dans une base de données. lorsque aucun champ du formulaire n'est renseigné et est laissé vide donc la requête m'affiche toutes les données de la base. si le premier champs du formulaire est rempli par vente, j'ai toutes les entrées concernant les ventes et c'est la même chose si on entre location. par contre des que l'on ajoute une autre champs du formulaire, il n'y a pas de résultat il en va de même si on laisse le premier champs vide et que l'on remplisse l'un des deux autre champs. je sais pas si j'ai étais assez clair dans mes explications mais j'ai besoin d'aide.  
PS: j’apprends le php
 
voici le formulaire
 

Code :
  1. <form method="post" action="recherche.php">
  2.                         <p>
  3.                                 Type d'opération : <br />
  4.                                 <select name="type_ope" value="Choisissez">
  5.                                         <option value="" selected="selected"></option>
  6.                                         <option>vente</option>
  7.                                         <option>location</option>
  8.                                 </select><br />
  9.                                 type de bien : <br />
  10.                                 <select name="type_bien">
  11.                                         <option value="" selected="selected"></option>
  12.                                         <option>Villa</option>
  13.       <option>appartement</option>
  14.       <option>terrain</option>
  15.       <option>chambre</option>
  16.       <option>magasin</option>
  17.       <option>immeuble</option>
  18.       <option>studio</option>
  19.       <option>bureaux</option>
  20.       <option>entrepot</option>
  21.                                 </select><br />
  22.                                prix : <br />
  23.                                 <select name="prix">
  24.                                         <option value="" selected="selected"></option>
  25.                                        <option value="1"> Moins de 200 000</option>
  26.       <option value="2"> Entre 200 000 et 300 000</option>
  27.       <option value="3"> Entre 300 000 et 400 000</option>
  28.       <option value="4"> Entre 400 000 et 600 000</option>
  29.       <option value="5"> Entre 600 000 et 800 000</option>
  30.       <option value="6"> Entre 800 000 et 1 000 000</option>
  31.       <option value="7"> Entre 1 000 000 et 1 500 000</option>
  32.       <option value="8"> Entre 1 500 000 et 2 000 000</option>
  33.       <option value="9"> Plus de 2 000 000</option>
  34.                                 </select><br />
  35.                                
  36.                                 <input type="submit" value="Valider" /><br />


 
et le code php
 

Code :
  1. $cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter" );
  2. $db = mysql_select_db($bdd) or die("Impossible de se connecter" );
  3. $limit  = 15;
  4. $offset = ((isset($_REQUEST['offset']) && $_REQUEST['offset'] > 0) ? $_REQUEST['offset'] : 0);
  5. $sql_limit = "LIMIT $offset, $limit";
  6. $where = array();
  7. // j'ai considéré que tous ces champs étaient des varchar dans ta base de données
  8. if (isset($_POST['type_ope']) && strlen($_POST['type_ope'])) {
  9.    $where[] = "type_ope = '".mysql_real_escape_string($_POST['type_ope'])."'";
  10. }
  11. if (isset($_POST['type_bien']) && strlen($_POST['type_bien'])) {
  12.    $where[] = "type_bien = '".mysql_real_escape_string($_POST['type_bien'])."'";
  13. }
  14. if (isset($_POST['prix']) && strlen($_POST['prix'])) {
  15.    $where[] = "prix = '".mysql_real_escape_string($_POST['prix'])."'";
  16. }
  17. $sql_Where = (empty($where)) ? null : 'WHERE '.implode(' AND ', $where);
  18. $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM annonce $sql_Where $sql_limit";
  19. $requete = mysql_query($sql, $cnx) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
  20.                      $i = @mysql_num_rows($requete); //comptage du nombre d'entrées sélectionnées par la recherche
  21.     if ($i == 0) //s'il n'y a pas de résultat
  22.     {
  23.         echo '<font color="#FF0000">Pas de résultat ....</font><br><font color="#808080">1 - Faites votre choix dans le type de commerce<br>2 - choisissez un département limitrophe<br>3 - cette référence peut ne plus exister (commerce vendu)</font>';
  24.     }
  25.      else
  26.                 {
  27.                          $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM annonce $sql_Where $sql_limit ORDER BY type_bien";
  28.                  }
  29.     while ($donnees = @mysql_fetch_assoc( $requete ) )
  30.   { 
  31.     ?>
  32.         <tr>
  33. <fieldset class="arrondi" style="border:2px solid #CCCCCC; font-family:verdana; color:#000000; background-color:#FFFFFF; margin-bottom: 5px">
  34. <div style="float:left; width:200px; margin-top: 3px">&nbsp;<font color="#808080" size="2" face="arial">Ref:</font>&nbsp;<font color="#0000FF" face="arial" size="2"><?php echo $donnees['type_ope']; ?></font></div>
  35. <div style="float:right; width:250px; margin-top: 5px">
  36. <font color="#808080" size="2" face="arial">Prix des murs:</font>&nbsp;<font color="FF0000" face="arial" size="2"><strong><?php echo $donnees['type_bien']; ?>&nbsp;€</strong></font></div>
  37. <div style="margin:auto; margin-top: 5px">
  38. <font color="#808080" size="2" face="arial">Prix du Fonds de C</font><font color="#808080" size="3" face="arial">:</font>&nbsp;<font color="FF0000" size="2"><strong><?php echo $donnees['prix']; ?>&nbsp;€</strong></font></div>
  39. <div align="left" style="margin-bottom: 5px; margin-top: 5px">&nbsp;<font color="808080" size="3" face="arial"><strong><?php echo $donnees['ville']; ?></strong></font></div>
  40. <div align="left" style="margin-bottom: 5px">&nbsp;<font color="#808080" size="2">Descriptif:</font>&nbsp;<font color="#808080" size="2" face="arial"><?php echo $donnees['quartier']; ?></font></div>
  41. </fieldset>
  42. </tr>
  43. <?php
  44. }
  45. //$requete = mysql_query('SELECT FOUND_ROWS() AS total');
  46. //$donnees = mysql_fetch_assoc($requete);
  47. //echo paging('../recherche.php', $donnees['total'], $limit, $offset);
  48. //function paging($page, $total_rows, $limit, $offset, $preserved_params = null){
  49. //$preserved_params = array('code_commerce'=>mysql_real_escape_string($_GET['code_commerce']), 'departement'=>mysql_real_escape_string($_GET['departement']) );
  50. // $query = '';
  51. // $str_hidden = '';
  52. // if (is_array($preserved_params)) {
  53. //   foreach ($preserved_params as $k=>$v) {
  54.   //    if ($k != 'offset') {
  55.   //      $query .= $k.'='.urlencode($v).'&amp;';
  56.    //     $str_hidden .= '<input type="hidden" name="'.$k.'" value="'.htmlentities($v).'" />';
  57.   //    }
  58. //   }
  59. //  }
  60. //}
  61. ?>

mood
Publicité
Posté le 13-07-2013 à 18:18:02  profilanswer
 

n°2197928
sltpaulo
Posté le 17-07-2013 à 17:18:26  profilanswer
 

regarde du coté de like en sql pour tes conditions dans ta variable where en php, egalement, tu devrais faire attention au valeur dans ta liste déroulante,
 
par exemple, si tu sélectionnes "Entre 600 000 et 800 000", la valeur de $_POST['prix'] sera egale a 5.
 
De plus, es-tu vraiment l'auteur de ce code?
// j'ai considéré que tous ces champs étaient des varchar dans ta base de données  
 

n°2197930
Volkhen
Posté le 17-07-2013 à 17:24:55  profilanswer
 

ojediop a écrit :

Code :
  1. $cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter" );



 [:cheesecake]


---------------
Main/Alt1/Alt2/Alt3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  problème recherche multi critère

 

Sujets relatifs
[Python] Problème .find dans un .txtProbléme GMP
Problème signature ds windows live mailRecherche developpeurs pour jeu de gestion
Probléme avec les socket en C[RESOLU] PROBLEME AVEC FORMULAIRE
Problème de comparaison textbox et cellule activeprobléme application WINDEV
probleme array_multisortProblème de menu déroulant
Plus de sujets relatifs à : problème recherche multi critère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR