recherche dans une base mysql

recherche dans une base mysql - PHP - Programmation

Marsh Posté le 13-02-2004 à 11:27:40    

Bonjour,
 
J'ai fait un formlaire pour faire une recherche dans ma base MySql.  
 
Mais lorsque que le champ du formulaire n'est pas saisi, je souhaite que le critère ne soint pas pris en compte. J'ai testé ce code:
 
<?php
 
 
 
if( empty($Surface) ) {
    $Surface = "NULL";
} else {
    $Surface = "'".$Surface."'";
}
 
require_once("connexion.php" );
$Requete_SQL2 = "SELECT Code_Ref, Type, Ville, Photo, Departement, Date_Maj, Nb_pieces, Descriptif, Surface, Prix, A_Louer_Vendre   FROM appartement where  Surface <='" . $_POST[Surface] . "' ";
$result = mysql_query($Requete_SQL2) or die("Erreur de S&eacute;lection dans la base : ". $Requete_SQL2 .'<br />'. mysql_error());
 
 
 
Mais il ne m'affiche pas tous les enregistrements si je ne lui indique pas de valeur.
 
Qu'est ce qu'il ne va pas dans mon code ?

Reply

Marsh Posté le 13-02-2004 à 11:27:40   

Reply

Marsh Posté le 13-02-2004 à 11:42:24    

<?php
if(empty($Surface)) {
 $Requete_SQL2 = "SELECT Code_Ref, Type, Ville, Photo, Departement, Date_Maj, Nb_pieces, Descriptif, Surface, Prix, A_Louer_Vendre   FROM appartement";
} else {
 $Requete_SQL2 = "SELECT Code_Ref, Type, Ville, Photo, Departement, Date_Maj, Nb_pieces, Descriptif, Surface, Prix, A_Louer_Vendre   FROM appartement where  Surface <='" . $_POST[Surface] . "' ";
}
 
require_once("connexion.php" );  
$result = mysql_query($Requete_SQL2) or die("Erreur de S&eacute;lection dans la base : ". $Requete_SQL2 .'<br />'. mysql_error());

Reply

Marsh Posté le 13-02-2004 à 11:51:31    

Code :
  1. $phrase=" ";
  2. If (!empty($Surface))
  3. $phrase.=" WHERE Surface>='".$_POSE[Surface]."'";


 
Tu fais ta requête et tu insères $phrase après "FROM appartement"
 
(apostrophes non garantis)


Message édité par deliriumtremens le 13-02-2004 à 12:00:30
Reply

Marsh Posté le 13-02-2004 à 11:52:16    

c'est une bonne solution.
 
le petit soucis c'est qu'il faut aussi que je vérifie aussi Nb_pieces, Prix, A_Louer_Vendre

Reply

Marsh Posté le 13-02-2004 à 11:59:14    

solution un peu boîteuse, mais que j'utilise

Code :
  1. $phrase=" ";
  2. If (empty($Surface)
  3. $phrase.=" $Surface>0"//tu auras tous les apparts si surface est vide, tu peux le faire sur n'importe quelle variable, c'est pour qu'il y ait un résultat si aucun champ n'est rempli, et pour qu'il n'y ait pas de AND juste après le WHERE.
  4. Else
  5. $phrase.="(Surface>='".$_POSE[Surface]."'" );
  6. If (!empty($Nb_pieces))
  7. $phrase.=" AND (Nb_pieces=$Nb_pieces)";
  8. //idem pour les autres, tu fais des AND
  9. $sql="SELECT gna gna FROM appartement WHERE $phrase";


 
Je sais pas si c'est clair, ya plus élégant à faire, mais ça fonctionne !


Message édité par deliriumtremens le 13-02-2004 à 12:00:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed