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 :

Problème d'interrogation d'une table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut Problème d'interrogation d'une table
    Bonjour,

    Je souhaite interroger la table "tauxexp" suivante:

    id___________pod____________taux
    1___________montreal________57
    2___________calgary_________170


    Lorsque le visiteur choisit "montreal", il doit obtenir "57" et lorsque le visiteur choisit "calgary", il doit obtenir "170".

    La demande provient du formulaire suivant:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form action="calculateur1.php" method="post">
    <label for="pays">Destination</label><br />
           <select name="port" id="port">
               <optgroup label="Canada">
               <option value="montreal">Montreal</option>
               <option value="calgary">Calgary, AB</option>
               </optgroup>
           </select>
     <input type="submit" value="Obtenez votre prix de transport >>"/>     
           </form>

    Je me suis assuré avec la fonction echo que la variable $_POST["port"] était correctement transmise sur la page calculateur1.php.

    Voici la page calculateur1.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
    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
    <?php
    
    
    
    $con = mysql_connect("localhost","root","root");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("nico2_db", $con);  // pas de soucis de connexion à la bd
    
    $query1 = "SELECT taux FROM tauxexp" ; // on sélectionne la colonne taux de la table tauxexp
    
    $reponse1 = mysql_query($query1);
    
    
    while ($preach1 = mysql_fetch_array($reponse1)) // pas d'erreur jusqu'ici
    
    {if ($_REQUEST["port"]=="montreal") $x=$preach1 ["taux"] ; if ($_REQUEST["port"]=="calgary") $y=$preach1 ["taux"] ; }
    
    
    {if ($_REQUEST["port"]=="montreal") echo "Voici votre prix montreal en euros :" . $x ;}
    {if ($_REQUEST["port"]=="calgary") echo "Voici votre prix calgary en euros :" . $y ;} 
    
    // le résultat affiché est toujours 170 même si montreal est sélectionné
    
    // autre possibilité que j'ai essayé en vain:
    
    $query1 = "SELECT taux FROM tauxexp WHERE pod=" . $_REQUEST["dep"] . "" ; // l'instruction est correcte car déjà utilisée pour d'autres applications similaires
    
    $reponse1 = mysql_query($query1);
    
    
    while ($preach1 = mysql_fetch_array($reponse1))
    
    {$x=$preach1["taux"] ; }
    {if ($_REQUEST["port"]=="montreal") echo . $x ;}
    {if ($_REQUEST["port"]=="calgary") echo .$x ;} 
    
    
    mysql_close();
    
    
    
    ?>
    Les deux possibilités échouent, quelqu'un pourrait-il m'aider à trouver la solution ?

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    EDIT : au temps pour moi, je commets un impair.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut Merci mais ça ne marche toujours pas
    Je ne pense pas que le problème provienne d'un == à la place d'un =


    La fonction $preach1 = mysql_fetch_array($reponse1) fonctionne très bien pour une autre application similaire de requête de table.


    En tout cas merci pour cette suggestion.

    Quelqu'un aurait-il une autre idée?

    Merci

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    En toute logique, la boucle while continue, quand bien même la condition souhaitée est rencontrée ($_REQUEST['port']). Donc, à chaque itération, puisque la boucle est encore bonne

    while ($preach1 = mysql_fect_array($result)
    {
    ...
    }

    on passe au row suivant, avec les valeurs de celui ci, et on affiche quand même un résultat.

    Comme le $_REQUEST est toujours le même, que le while est toujours bon (il y a toujours des row), à chaque tour, la variable $x se voit attribuée la valeurs "taux " du row suivant.

    Donc, s'il y a dix jeux de row, on aura toujours le dernier row utilisé, car la boucle ne s'arrête pas.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut Je pense que vous avez vu juste
    Mais alors que faut il faire pour obtenir "montreal" > 57 et "calgary" > 170 ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    Citation Envoyé par hnicola Voir le message
    Mais alors que faut il faire pour obtenir "montreal" > 57 et "calgary" > 170 ?
    en gros, à modifier si besoin est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $query1 = "SELECT pod,taux FROM taux" ;
     
     
    while ($preach1 = mysql_fetch_array($reponse1)) // pas d'erreur jusqu'ici
    {
     
    if ($_POST["port"]==$preach1['pod'])
    {
    echo "Voici votre prix " . $_POST["port"] . " en euros :" . $preach1 ["taux"] ;
    }
     
    }

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut Merci
    Vous êtes bon, tout marche.

    Merci encore et bonne journée à vous !

    Très cordialement

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    Merci !
    Ça m'ennuyait un peu d'avoir commis une erreur

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

Discussions similaires

  1. Problème extraire ligne d'une table
    Par bubi dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 22/11/2005, 10h35
  2. Problème avec affichage d'une table modifiée
    Par auriolbeach dans le forum Access
    Réponses: 6
    Dernier message: 31/10/2005, 15h45
  3. Problème d'insertion dans une table MYSQL
    Par greg69 dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/10/2005, 11h34
  4. Problème de suppression dans une table
    Par Splinter dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/10/2005, 10h55
  5. Problème de dépendances dans une table
    Par PrinceMaster77 dans le forum Outils
    Réponses: 1
    Dernier message: 22/11/2004, 12h39

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