+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Inactif
    Inscrit en
    octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : octobre 2008
    Messages : 826
    Points : 144
    Points
    144

    Par défaut Zend studio erreur sur while

    Bonjours,

    Voila a quoi ressemble ma condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while ($row = $conn->tableauAssoc()) { 
     //............//
    }
    Donc zend studio me retourne cette avertissement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Asignment in condition

    Pour pallier a ce problème, je fais sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $row = $conn->tableauAssoc();
     
    while ($row) {
    $row = $conn->tableauAssoc();
     //............//
    }
    Maintenant le probleme, c'est que ma boucle enleve un resultat a retourné, donc a la place d'avoir sa :
    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
     
    ############
    #  ID  #  valeur   # 
    ############
    #   1   #  test 1   #
    #   2   #  test 2   #
    #   3   #  test 3   #
    #   4   #  test 4   #
    #   5   #  test 5   #
    #   6   #  test 6   #
    #   7   #  test 7   #
    #   8   #  test 8   #
    #   9   #  test 9   #
    #   10 #  test 10 #
    ############

    J'ai sa :
    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
     
    ############
    #  ID  #  valeur   # 
    ############
    #   1   #  test 1   #
    #   2   #  test 2   #
    #   3   #  test 3   #
    #   4   #  test 4   #
    #   5   #  test 5   #
    #   6   #  test 6   #
    #   7   #  test 7   #
    #   8   #  test 8   #
    #   9   #  test 9   #
    #   10 #             #
    ############
    Donc comme on peut le voir, la valeur du 10eme index (test 10) ne s'affiche plus.

    Pourquoi ?

    J'utilise ODBC, mais le resultat est le meme sur PDO.

    Merci

  2. #2
    Expert Confirmé Sénior Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 224
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 224
    Points : 4 173
    Points
    4 173

    Par défaut

    Woww tu vas devoir utiliser un do/while pour ne pas perdre le premier $row ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    do {
        $row = $conn->tableauAssoc();
        if ( $row ) {
     
        }
    } while ( $row ) ;
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Expert Confirmé Sénior Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 224
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 224
    Points : 4 173
    Points
    4 173

    Par défaut

    Citation Envoyé par thebarbarius Voir le message
    Voila a quoi ressemble ma condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while ($row = $conn->tableauAssoc()) { 
     //............//
    }
    Donc zend studio me retourne cette avertissement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Asignment in condition
    Et sinon si tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (($row = $conn->tableauAssoc()) != FALSE) {
    Il aime toujours pas ?
    (remplace FALSE pas ce qui convient)
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #4
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 639
    Points
    10 639

    Par défaut

    c'est soit disant parce que tu pourrais faire une erreur de condition

  5. #5
    Inactif
    Inscrit en
    octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : octobre 2008
    Messages : 826
    Points : 144
    Points
    144

    Par défaut

    Merci,

    Oui en effet c'est a cause des erreur trop frequente du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (1 = 1):  endif;
    seb.

    Je perds peut etre le while mais je le recupere ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $row = $conn->tableauAssoc();
     
    while ($row) {
    $row = $conn->tableauAssoc();
     //............//
    }
    Sa marche quand ou pas ?
    Ou sa requiert tous de meme un do while.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while (($row = $conn->tableauAssoc()) != FALSE) {
    c'est pas plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while (($row = $conn->tableauAssoc()) !== FALSE) {

  6. #6
    Expert Confirmé Sénior Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 224
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 224
    Points : 4 173
    Points
    4 173

    Par défaut

    Sa marche quand ou pas ?
    Ben tu ne traites pas le 1er $row

    c'est pas plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (($row = $conn->tableauAssoc()) !== FALSE) {
    Pourquoi pas si $conn->tableauAssoc( ) retourne strictement FALSE à la fin de son itération.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  7. #7
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 639
    Points
    10 639

    Par défaut

    apres si t'es sur PDOp as besoin de while pour le statement est un Traversable un foreach dessus suffis

  8. #8
    Inactif
    Inscrit en
    octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : octobre 2008
    Messages : 826
    Points : 144
    Points
    144

    Par défaut

    Si j'ai besoin du while.

    Bon je vais essayer le do while pour voir.

  9. #9
    Expert Confirmé Sénior

    Inscrit en
    septembre 2010
    Messages
    7 957
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 7 957
    Points : 10 639
    Points
    10 639

    Par défaut

    Citation Envoyé par thebarbarius Voir le message
    Si j'ai besoin du while.

    Bon je vais essayer le do while pour voir.
    oublie pas que c'est juste un avertissement de zend studio mais en aucun cas une erreur de php

    la syntaxe a adopter (pour zend studio) est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while (($row = $conn->tableauAssoc()) != false)
    // pas de comp strict ici
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $row = $conn->tableauAssoc();
    while ($row)
    pour le do...while le probleme sera le meme

  10. #10
    Inactif
    Inscrit en
    octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : octobre 2008
    Messages : 826
    Points : 144
    Points
    144

    Par défaut

    Je sais bien que la zyntax est exact, mais c'est assez penible de voir cette partout, surtout quand tu debug.

    Merci stealth c'est resolue.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •