Problème boucle while et sql

Résolu
Hello,

J'aimerai traiter différemment le dernier enregistrement d'un while. Je m'explique:

Je fais:

<?php
$reponse = $bdd->query('SELECT * FROM tblPuissance');
$donnees = $reponse->fetch();

while($donnees = $reponse->fetch()){
echo '[new '.$donnees['puiDate'].', '.$donnees['puiChauffage'].', '.$donnees['puiEclairage'].', '. $donnees['puiECS'].', '.$donnees['puiCuisine'].'],';
}

$reponse->closeCursor();
?>

Et j'aimerai que la dernière ligne ne se termine pas par '],'; mais par ']'; sans la virgule. Comment faire ?

Merci d'avance !

3 réponses

  1. Réponse:

    <?php
    for($i=1;$i<=$reponsemax-1;$i++){
    $donnees = $reponse->fetch();
    echo '[new Date('.$donnees['puiDate'].'), '.$donnees['puiChauffage'].', '.$donnees['puiEclairage'].', '. $donnees['puiECS'].', '.$donnees['puiCuisine'].'],';
    }
    $donnees = $reponse->fetch();
    echo '[new Date('.$donnees['puiDate'].'), '.$donnees['puiChauffage'].', '.$donnees['puiEclairage'].', '. $donnees['puiECS'].', '.$donnees['puiCuisine'].']';

    $reponse->closeCursor();
    ?>
    1. Entre temps j'ai pensé à autre chose,

      Je pourrai faire un count de mes enregistrement et utiliser une boucle
      for(int i=0;i<iCount;i++){
      echo '[new '.$donnees['puiDate'].', '.$donnees['puiChauffage'].', '.$donnees['puiEclairage'].', '. $donnees['puiECS'].', '.$donnees['puiCuisine'].'],';
      }
      echo '[new '.$donnees['puiDate'].', '.$donnees['puiChauffage'].', '.$donnees['puiEclairage'].', '. $donnees['puiECS'].', '.$donnees['puiCuisine'].']';

      Non ?
      1. Ceci devrait fonctionner :
        $buffer="";
        while($donnees = $reponse->fetch()){ 
        $buffer.='[new '.$donnees['puiDate'].', '.$donnees['puiChauffage'].', '.$donnees['puiEclairage'].', '. $donnees['puiECS'].', '.$donnees['puiCuisine'].'],'; 
        } 
        echo substr($buffer,-1);