IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

reconstruction d'une requete sql en utilisant php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 49
    Points : 35
    Points
    35
    Par défaut reconstruction d'une requete sql en utilisant php
    Bonjour,
    je voulais construire une requête mysql en utilisant le php.

    j'ai trouvé un petit problème le "OR" (signalé en rouge) que j'ai mis se répète.
    Comme ça :
    select * from bien as b, bien_criteres as bc where b.bien=achat AND b.id_localite=1 AND b.prix<=200000 AND (b.type=Appartement OR b.type=Maison OR ) AND b.surface_totale<=200 AND (b.nombre_piece=3 OR b.nombre_piece=4 OR ) AND b.surface_batue>=125 AND (bc.id_critere=1 OR bc.id_critere=2 OR bc.id_critere=3 OR ) AND b.id_bien=bc.id_bien

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    $sql="select * from bien as b, bien_criteres as bc where ";
    $req_finale=mysql_query("select * from spec_alerte where id_alerte=1");
    while ($row=mysql_fetch_assoc($req_finale)){
     
    		switch($row['critere']){
    		case "bien" :
    		$sql.="b.bien=".$row['valeuri'];
    		break;
    		case "id_localite" :
    		$sql.=" AND  b.id_localite=".$row['valeuri'];
    		break;
     
    		case "prix" :
    		$sql.=" AND  b.prix<=".$row['valeuri'];
    		$sql.=" AND (";
    		break;
     
    		case "type" :
    		 $sql.="b.type=".$row['valeuri'];
    		 $sql.=" OR ";		 
    		break;
     
    		case "surface_totale" :
    		$sql.=") AND  b.surface_totale<=".$row['valeuri'];
    		$sql.=" AND (";
    		break;
     
    		case "nombre_piece" :
     
    		$sql.="b.nombre_piece=".$row['valeuri'];
            $sql.=" OR ";	
    		break;
     
    		case "surface_batue" :
    		$sql.=") AND  b.surface_batue>=".$row['valeuri'];
    		$sql.=" AND (";
    		break;
     
    		case "id_critere" :
    		$sql.="bc.id_critere=".$row['valeuri'];
            $sql.=" OR ";	
    		break;
    		}
    }
    $sql.=") AND b.id_bien=bc.id_bien";
    echo $sql;
    Avez vous une idée ???

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un petit patch pourrait être comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $piece_separateur = "";
     
    while ($row=mysql_fetch_assoc($req_finale)){
     
    		switch($row['critere']){
    //
     
    case "nombre_piece" :
        $sql.= $piece_separateur  . "b.nombre_piece=". $row['valeuri'];
        $piece_separateur = " OR ";	
    break;

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 49
    Points : 35
    Points
    35
    Par défaut
    Merci beaucoup pour votre réponse.
    ça marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/03/2007, 13h30
  2. Réponses: 5
    Dernier message: 24/08/2006, 15h00
  3. PHP : construire une requete SQL
    Par Commodore dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 27/07/2006, 08h59
  4. Réponses: 2
    Dernier message: 28/06/2006, 15h56
  5. utilisation du contenu d'un champ edit dans une requete sql
    Par amri2006 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/01/2006, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo