La boucle while en php

Loulou -  
 chanteur06 -
Bonjour,

j'ai une requete qui s'execute normal sur sqlserver et me donne plusieurs enregistrements comme résultat mais si je copie cette requete dans une partie du code php et je manipule le résultat dans une boucle while , je remarque que le programme sort de la boucle while avec le traitement qui s' est fait sur le 1 er enregistrement seulement comme si on a un seul enregistrement et continu le reste du code normal.
je veux une explication de ça et merci d'avance.

2 réponses

  1. oberion Messages postés 1255 Statut Membre 249
     
    Bonjour,

    Sans code, pas d'explication.
    0
  2. chanteur06
     
    bonjour,
    J'ai un soucis que je ne comprend pas avec while:
    seul le 1er enregistrement sur la base de test est sortie (en local sur easy php)
    bien que plusieurs animaux du mm type soit enregistrés,le résultat n'en affiche qu'un!
    si quelqu'un peut m'éclairer...
    merci

    // Sélection des animaux d'une catégorie donnée
    $query = "SELECT * FROM animal
    WHERE animalType=\"{$_POST['interet']}\""; #24
    $result = mysql_query($query)
    or die ("Exécution de la requête impossible");

    // Affiche les résultats dans un tableau
    echo "<table cellspacing='10' border='0' cellpadding='0' width='100%'>"; #29

    echo "<tr><td colspan='5' align='right'>
    <i>Cliquez sur une image pour l'afficher en grand</i><br><hr>
    </td></tr>\n";
    while ($ligne = mysql_fetch_array($result,MYSQL_ASSOC) ) #34
    { $f_prix = number_format($ligne['animalPrix'],2);

    // Y a-t-il plusieurs couleurs ?
    $query = "SELECT * FROM Couleur WHERE animalNom='{$ligne['animalNom']}'"; #38

    $result2 = mysql_query($query) or die(mysql_error()); #40
    $nbCouleurs = mysql_num_rows($result2); #41

    // Affiche une ligne pour chaque animal
    echo "<tr>\n";
    echo "<td>{$ligne['animalID']}</td>\n";
    $nomAnimal = stripslashes($ligne['animalNom']);
    echo "<td><font size='+1'><b>$nomAnimal</b></font></td>\n";
    echo "<td>{$ligne['animalDescription']}</td>\n";
    // Affiche l'image s'il n'y a pas plusieurs couleurs
    if ($nbCouleurs <= 1) #50
    { echo "<td><a href='../images/{$ligne['animalImage']}'
    border='0'>
    <img src='images/{$ligne['animalImage']}' border='0'
    width='100' height='80'></a></td>\n";
    }
    echo "<td align='center'>$f_prix €</td>\n
    </tr>\n";
    // Affiche une ligne pour chaque couleur si plusieurs couleurs
    if ($nbCouleurs > 1) #59
    { while ($ligne2 = mysql_fetch_array($result2,MYSQL_ASSOC))
    { echo "<tr><td colspan=2> </td>
    <td>{$ligne2['animalCouleur']}</td>
    <td><a href='../images/{$ligne2['animalImage']}'
    border='0'>
    <img src='../images/{$ligne2['animalImage']}' border='0'
    width='100' height='80'></a></td>\n";
    }
    }
    echo "<tr><td colspan='5'><hr></td></tr>\n";
    }
    echo "</table>\n";
    echo "<div align='center'>
    <a href='catalogue.php'><b>Pour en voir d'autres</b></a></div>";
    ?>

    Dc les types sont tous affichés mais pas les résultats escomptés........
    0