Associer plusieurs SELECT dans une table SQL

Résolu/Fermé
gexevo Messages postés 74 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 26 août 2010 - 25 août 2010 à 22:37
gexevo Messages postés 74 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 26 août 2010 - 26 août 2010 à 18:05
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 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
26 août 2010 à 07:45
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 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
26 août 2010 à 09:14
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 mercredi 9 décembre 2009 Statut Membre Dernière intervention 26 août 2010 8
26 août 2010 à 18:05
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