Associer plusieurs SELECT dans une table SQL

Résolu
gexevo Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -  
gexevo Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -
Salut,

Ça fait trois jours que j'essaie différente combinaison SQL pour mener à bien ma requête mais là j'ai vraiment besoin de poster.

Je vous explique, la requête repose sur un site d'annonces.

Dans le FORM j'ai plusieurs conditions :

* Mot clef (<input type="text">)
* La région (<select>)
* Année Mini (<select>)
* Année Max (<select>)
* Prix Mini (<select>)
* Prix Max (<select>)
et le SUBMIT.

Comment associer les résultats et me ressortir ceux qui ont des cohérences tout en sachant qu'un champ du FORM peut rester vide.

Les résultats sont dans une seule table.

Merci de partager vos idées, je compte sur vous.

A+
A voir également:

3 réponses

moderno31 Messages postés 872 Date d'inscription   Statut Membre Dernière intervention   92
 
Hello
Mais ta requête est ou ?
La structure de la seule table c'est quoi ?
Tu es sous quel SGBD ?
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

c'est à toi de générer ton SQL par programmation, il n'y a pas d'autre moyen...
0
gexevo Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   8
 
C'est bon j'ai enfin trouvé.
Voici le code pour ceux qui pourrait être intéressé.

$requete2 = "SELECT * FROM annonces WHERE 1=1 ";
if (empty($mot_cle) and empty($region) and empty($annee_mini) and empty($annee_maxi) and empty($prix_mini) and empty($prix_maxi)) {
  $requete2 = "SELECT * FROM annonces";}
else {
  if (!empty($mot_cle)) {
    $requete2 .= " AND titre LIKE '%$mot_cle%'";}
  if (!empty($region)) {
    $requete2 .= " AND region='$region'";}
  if (!empty($annee_mini)) {
    $requete2 .= " AND annee >='$annee_mini'";}
  if (!empty($annee_maxi)) {
    $requete2 .= " AND annee <='$annee_maxi'";}
  if (!empty($prix_mini)) {
    $requete2 .= " AND prix >='$prix_mini'";}
  if (!empty($prix_maxi)) {
    $requete2 .= " AND prix <='$prix_maxi'";}
   
   $requete2 .= " ORDER BY id DESC LIMIT $Ndeb,$Nmax";  
  }  
0