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 :

concaténer une requête sql avec condition [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1
    Points : 2
    Points
    2
    Par défaut concaténer une requête sql avec condition
    Bonjour,
    je voudrais savoir s'il est possible de concatener une requêtes avec une condition . Ma question est un peu stupide car ça ne fonctionne pas et je ne comprends pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     $query="SELECT * FROM croisiere WHERE destination ='$id_destination' ";
    		if (($_POST["budget"])!="Budget") {
    		$budget=$_POST["budget"];
    		$query.="AND prix_exterieur < '$budget'" ;
    	 }
     
    $result = mysql_query($query); 	
    while ($val=mysql_fetch_array($result)) {
    ......
    }
    Merci pour votre aide !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    bien sur que cela est possible. seulement je crois q tu fais une conversion de type dans ta requete. ne met pas de quote autour de la variable $budget
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $query.="AND prix_exterieur < $budget" ;
    j'imagine q prix_exterieur est de type numéric

  3. #3
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    le mieux je pense c'est de faire cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		if (($_POST["budget"])!="Budget")
    		{
    			$budget=$_POST["budget"];
    			$query.="AND prix_exterieur < " . $budget ;
     
    		}

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Bebel : cela fonctionne mais, quitte à utiliser des guillemets doubles, autant mettre la variable à l'intérieur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query.="AND prix_exterieur < $budget";
    sinon, il est préférable de faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query.='AND prix_exterieur < ' . $budget ;

  5. #5
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    C'est vrai que cela fonctionne sans fermer les guillemets. Mais c'est une habitude prise à mon travail. Et donc maintenant je le fais comme ca. Mais sinon mon post, n'etais pas pour modifier ce que tu avais dis, mais on a du commencer en meme temps a ecrire. et c'est juste que j'ai du faire autre chose avant d'appuyer sur le bouton valider.

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    @Bebel : renseigne-toi sur les guilemets. Si tu utilise des guillemets doubles, tu demandes à PHP de remplacer les variables de la chaîne par leur valeur ; si tu utilises des guillements simples, il considère les noms des variables comme des chaînes de caractères (et non comme leur valeur).
    En gros, les guillemets doubles sont plus faciles à lire mais plus gourmands en ressources.

    Mixer les guillemets doubles et la concaténation me semble une double perte de ressources : tu demandes à PHP de parser la chaîne pour rien (elle ne contient pas de variables) et tu compliques l'écriture du code en concaténant.

  7. #7
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    @Kirkis
    je savais pas que les " " etait plus gourmandes, pour le reste je le savais, mais voila je respectais les consignes de programmations. Mais avec ca, il va falloir en rediscuter.
    merci pour l'info.

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

Discussions similaires

  1. Besoin de retrouner des 0 aussi dans une requête SQL avec JOIN
    Par Jean-Marc68 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 05/11/2007, 14h45
  2. [SQL] Comparer résultat d'une requête Sql avec php
    Par nicoxweb dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/09/2007, 22h46
  3. [Access] Problème dans une requête SQL avec INNER JOIN ?
    Par bds2006 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/06/2006, 10h57
  4. Problème dans une requête SQL avec AS et ON ?
    Par bds2006 dans le forum Bases de données
    Réponses: 9
    Dernier message: 26/06/2006, 15h25
  5. Une requête SQl avec concaténation
    Par Bobybx dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/01/2006, 10h18

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