+ 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 :
    1
    2
    3
    4
     
    while ($row = $conn->tableauAssoc()) { 
     //............//
    }
    Donc zend studio me retourne cette avertissement :
    Code :
    1
    2
     
    Asignment in condition

    Pour pallier a ce problème, je fais sa :
    Code :
    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 :
    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 :
    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 169
    Points
    4 169

    Par défaut

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

    Code :
    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 169
    Points
    4 169

    Par défaut

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

    Code :
    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 638
    Points
    10 638

    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 :
    1
    2
     
    if (1 = 1):  endif;
    seb.

    Je perds peut etre le while mais je le recupere ici :
    Code :
    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 :
    1
    2
     
    while (($row = $conn->tableauAssoc()) != FALSE) {
    c'est pas plutot :
    Code :
    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 169
    Points
    4 169

    Par défaut

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

    c'est pas plutot :
    Code :
    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 638
    Points
    10 638

    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 638
    Points
    10 638

    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 :
    1
    2
    while (($row = $conn->tableauAssoc()) != false)
    // pas de comp strict ici
    ou
    Code :
    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
  •