[MSSQL et PHP] Problème de boucle...

Problème de boucle... [MSSQL et PHP] - SQL/NoSQL - Programmation

Marsh Posté le 06-02-2007 à 14:20:00    

Bonjour,
 
Je rencontre un petit souci avec mon imbrication de While qui, je pense, devrait théoriquement fonctionner...
 
Voilà le code PHP avec lequel je tente de réaliser un tableau, affichant les données issues d'une base SQL Server 2003, en executant une procédure stockée.  
 

Code :
  1. <?
  2.   [...]
  3.   $date1 = $jour1.'/'.$mois1.'/'.$an1;
  4.   $date2 = $jour2.'/'.$mois2.'/'.$an2;
  5. // execution de la requete sur la base  (procedure stockee)
  6. $sql2 = "execute dbo.etatComptProd_dicut '".$date1."', '".$date2."';";
  7. $result = mssql_query($sql2, $cnx);
  8. // Haut du tableau
  9. $titre = '<tr><td colspan = "4" id = "titretab">
  10.         Suivi du tonnage Dicut par mode de transport pour la période du '.$date1.' au '.$date2.'</td>';
  11. $nb_lignes = mssql_num_rows($result);
  12. $entete_tableau = "<tr id = 'reftab'>
  13.   <td width=30%><br /></td>
  14.   <td width=30%><br /></td>
  15.   <td width=20%><br />Poids brut</td>
  16.   <td width=20%><br />Cpt</td></tr>";
  17. echo "<table border = '0' id = 'chiffres'>";
  18. echo $titre;
  19. echo $entete_tableau;
  20. while($row= mssql_fetch_object($result)) {
  21. $mois = $row-> libmois;
  22. while($mois == $row-> libmois){
  23. echo "<tr id = 'grostitre'><td>Mois : $mois</td>";
  24. echo "<td></td>";
  25. echo "<td></td>";
  26. echo "<td></td></tr>";
  27. $totalPdsBrutMois = 0;
  28. $modetransp = $row-> libelléTRS;
  29.  while($modetransp == $row-> libelléTRS){
  30.  echo "<tr><td id = 'bilan'>$modetransp</td>";
  31.  echo "<td></td>";
  32.  echo "<td></td>";
  33.  echo "<td></td></tr>";
  34.  $totalPdsBrutTransp = 0;
  35.  $date = $row-> DATEEXP;
  36.   while ($date == $row-> DATEEXP){
  37.   echo "<tr><td>$date</td>";
  38.   echo "<td></td>";
  39.   echo "<td></td>";
  40.   echo "<td></td></tr>";
  41.   $totalPdsBrutJour = 0;
  42.   $totalCptJour = 0;
  43.   $numVEH =  $row-> NUMVEH;
  44.    while($numVEH == $row-> NUMVEH){
  45.    $poidsBrut =  $row-> SommeDePOIDSBRUT;
  46.    $cpt =  $row-> cpt;
  47.    echo "<tr><td></td>";
  48.    echo "<td>$numVEH</td>";
  49.    echo "<td>$poidsBrut</td>";
  50.    echo "<td>$cpt</td></tr>";
  51.    $totalPdsBrutJour += $poidsBrut;
  52.    $totalCptJour += $cpt;
  53.    }
  54.   echo "<tr><td id = 'bilan'>Total jour</td>";
  55.   echo "<td></td>";
  56.   echo "<td id = 'bilan'>$totalPdsBrutJour</td>";
  57.   echo "<td id = 'bilan'>$totalCptJour</td></tr>";
  58.   $totalPdsBrutTransp += $totalPdsBrutJour;
  59.   }
  60.  echo "<tr><td id = 'bilan'>Total transport</td>";
  61.  echo "<td></td>";
  62.  echo "<td id = 'bilan'>$totalPdsBrutTransp</td>";
  63.  echo "<td></td></tr>";
  64.  $totalPdsBrutMois += $totalPdsBrutTransp;
  65.  }
  66. echo "<tr><td id = 'bilan'>Total mois</td>";
  67. echo "<td></td>";
  68. echo "<td id = 'bilan'>$totalPdsBrutMois</td>";
  69. echo "<td></td></tr>";
  70.    
  71. }
  72. }
  73.     echo '</table>';
  74.     // fermer la connexion à sql server
  75.     mssql_close($cnx);
  76. ?>
  77. </div>
  78. </center>


 
J'obtiens alors la première ligne du tableau, qui boucle infiniment...
Mes "While" ne semblent donc pas boucler correctement, serait-ce l'équivalent du "movenext()" en ASP qu'il manquerait à mon code ?...
 
Merci par avance pour votre aide,
Alex
 

Reply

Marsh Posté le 06-02-2007 à 14:20:00   

Reply

Marsh Posté le 06-02-2007 à 14:48:46    

Peut-être que:
 

Code :
  1. while($mois == $row-> libmois)


 
Est tjs vérifié et que donc tu affiches sans fin la même ligne.

Reply

Marsh Posté le 07-02-2007 à 09:24:12    

Salut sircam, et merci pour ta réponse.
En effet, mais comment faire pour passer à la ligne d'enregistrement suivant dans ce cas ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed