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 :

Requête BETWEEN pour un formulaire [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Par défaut Requête BETWEEN pour un formulaire
    bonsoir !
    j'ai fais un formulaire de recherches pour un bien immobilier par prix:
    - < à 200000
    - entre 200000 et 400000
    - > à 400000.
    le problème qui m'apparait c est que mon script ne marche pas: il ne me renvoye pas les valeurs entre 200000 et 4000000 et > à 400000.
    j 'ai fais comme formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<OPTION value='1'>inférieur à 200000 euros";
    echo "<OPTION value='200000'>entre 200000 et 400000 euros";
    echo "<OPTION value='400000'> supérieur à 400000 euros";
    et l'affichage se fait avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $choix=$_GET['interet'];
    echo $choix;
    if ($choix = 1){
    $choix2=200000;}
    else
    {
    if ($choix==200000){
    $choix2=400000;}
    else
    {
    $choix2=10000000;}
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "select * from bien where bienprix between '$choix' and '$choix2' LIMIT $Ndeb,$Nmax" or die ("Probleme lors de la lecture de la base de donnees");
    je me demandai si cela pouvait pas venir de ma requête ou bien de mes conditions que j'ai mal écris.
    merci d'avance.
    autre questions, avez vous un petit lien sympa pour que je travaille sur les requêtes multicritères: par exemple pour pouvoir faire un tri sur les appartement et ville;ou le prix et la surface habitable...
    merci bcp
    jérôme

  2. #2
    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
    Par défaut
    Salut

    Tu as écrit :
    Tu devrais mettre :
    [Edit] Voici ce que je te suggère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ?>
    <option value="1"> inférieur à 200000 euros</option>
    <option value="2"> entre 200000 et 400000 euros</option>
    <option value="3"> supérieur à 400000 euros</option>
    <?php
    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
    if(!empty($_POST['interet']))
    {
       switch($_POST['interet'])
       {
          case 1:
             $choix = 1;
             $choix2 = 200000;
          break;
     
          case 2:
            $choix = 200000;
            $choix2 = 400000;
          break;
     
          case 3: // pas de "break" ici
          default:
             $choix = 400000;
             $choix2 = 1000000;
          break;
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query =
      "SELECT *
       FROM `bien`
       WHERE `bienprix` BETWEEN '$choix' AND '$choix2'
       LIMIT $Ndeb, $Nmax";
     
    $result = mysql_query($query)
       or die ("Problème lors de la lecture de la base de données : ".mysql_error());
    [Edit 2] Pense également à consulter l'index PHP (cf. ma signature) : Comment débuter avec MySQL et PHP

  3. #3
    Membre confirmé Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Par défaut
    merci beaucoup de ton aide!
    c est super sympa je connaissais pas cette méthode mais elle est plus carré que la mienne!!!
    cependant je comprend pas , les deux premieres value 1 et 2 marchent bien mais la value 3 marche pas.
    j'ai essayé en modifiant les valeur du case3 mais rien n'y fais, il ne veut rien m'afficher à plus de 400000 euros. peut etre que c est cher pour une maison 400000 euros!!!

  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
    Par défaut
    Vérifie à la main qu'il y a des tuples dans la table de la base de données qui correspondent à ces critères de recherche.

  5. #5
    Membre confirmé Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Par défaut
    j'ai vérifié dans la base et éliminé deux prix à 500000 mais normalement je devrai avoir un à 500000 et un a 600000 d'afficher mais il ne veut rien savoir.
    dans le cas ou j en ai deux ( j ai essayé avec 100000), il m'affiche bien les deux.
    je comprend pas d'ou cela pourrait venir car j ai bien fais attention à l'écriture des prix, ils sont tous bien stocker dans la base

  6. #6
    Membre confirmé Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Par défaut
    je me demandai si ca pouvait pas venir du break a la fin car dans ton code tu met en commentaire:
    pas de break ici pour le dernier cas.
    dois je mettre autre chose que break ?
    merci

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

Discussions similaires

  1. [AC-2003] MAJ d'une requête source pour un sous formulaire
    Par DonKnacki dans le forum IHM
    Réponses: 5
    Dernier message: 05/10/2011, 14h49
  2. [AC-2007] requête pour 1 formulaire avec 3 prix
    Par aurel77310 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 11/06/2010, 10h47
  3. [AC-2003] Requête SQL pour Mise à jour de champs dans un formulaire suite à une saisie
    Par sunshine44 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/01/2010, 16h25
  4. [Requête] pour un formulaire
    Par astirw dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 18/04/2007, 11h24
  5. problème de requète SQL pour formulaire
    Par en_stage dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 21/06/2005, 12h21

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