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 :

Une requête de base mal interprétée ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Une requête de base mal interprétée ?
    Bonjour,

    J'ai une question complètement idiote mais je bloque sur une question de débutant sans comprendre ce qui se passe, ça ne m'a jamais fait ça auparavant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?
    $sql_select_d = mysql_query("SELECT * FROM dg_dispatch WHERE dispatch_index = '".$sql_values['index_id']."' ORDER BY dispatch_id");
     
    $sql_values_d = mysql_fetch_array($sql_select_d);
     
    while ($sql_values_d = mysql_fetch_array($sql_select_d)) 
    {
    ?>
    <? echo($sql_values_d['dispatch_categ']); ?>&nbsp;
    <? } ?>
    J'ai $sql_values['index_id'] = 40
    Dans la table dg_dispatch, j'ai (je vous épargne la colonne dispatch_id qui est auto-incrémentée) :
    dispatch_index | dispatch_categ
    40 | 2
    40 | 3
    40 | 4

    SAUF ... que le script me retourne : 3 4
    Pourtant, il devrait me retourner : 2 3 4 ... non ?!


    Je suis perdu !
    Merci d'avance,

    Matthieu.

  2. #2
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    C'est normal...tu mets un fetch_array avant la boucle....donc il lis un premier resultat. Puis tu commence ta boucle en lisant le resultat suivant. Donc tu n'affichera pas le premier ^^

  3. #3
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par MatthieuC
    Bonjour,

    J'ai une question complètement idiote mais je bloque sur une question de débutant sans comprendre ce qui se passe, ça ne m'a jamais fait ça auparavant :
    Ah bon? Pourtant ca m'arrive souvent de bloquer sur des trucs de débutant! C'est même ce qui me fait perdre le plus de temps, les erreurs toutes betes!

    Explication du bug dans ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?
    $sql_select_d = mysql_query("SELECT * FROM dg_dispatch WHERE dispatch_index = '".$sql_values['index_id']."' ORDER BY dispatch_id");
    
    // Tu fetches une fois le résultat là
    $sql_values_d = mysql_fetch_array($sql_select_d);
    
    // tu refetches direct, donc tu perds la premiere ligne 
    // il faut supprimer la ligne du dessus
    while ($sql_values_d = mysql_fetch_array($sql_select_d)) 
    {
    ?>
    <? echo($sql_values_d['dispatch_categ']); ?>&nbsp;
    <? } ?>
    Edit: doublé par Asmodean, ca m'apprendra a dire des betises!

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Tout bêtement


    Merci chef !
    Et merci aussi au deuxième chef !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/06/2009, 11h49
  2. Réalisé une connexion et une requête sur base MYSQL
    Par arnaudperfect dans le forum VBScript
    Réponses: 3
    Dernier message: 25/11/2008, 09h50
  3. Réponses: 1
    Dernier message: 28/08/2007, 19h18
  4. Réponses: 3
    Dernier message: 01/03/2007, 21h54
  5. Réponses: 4
    Dernier message: 29/06/2005, 11h40

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