Problème boucle while et sql

Résolu/Fermé
magodeoz2 Messages postés 5 Date d'inscription mardi 18 décembre 2012 Statut Membre Dernière intervention 18 décembre 2012 - Modifié par magodeoz2 le 18/12/2012 à 12:23
magodeoz2 Messages postés 5 Date d'inscription mardi 18 décembre 2012 Statut Membre Dernière intervention 18 décembre 2012 - 18 déc. 2012 à 14:38
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

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
18 déc. 2012 à 13:04
Ceci devrait fonctionner :
$buffer="";
while($donnees = $reponse->fetch()){ 
$buffer.='[new '.$donnees['puiDate'].', '.$donnees['puiChauffage'].', '.$donnees['puiEclairage'].', '. $donnees['puiECS'].', '.$donnees['puiCuisine'].'],'; 
} 
echo substr($buffer,-1);
0
magodeoz2 Messages postés 5 Date d'inscription mardi 18 décembre 2012 Statut Membre Dernière intervention 18 décembre 2012
18 déc. 2012 à 13:13
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 ?
0
magodeoz2 Messages postés 5 Date d'inscription mardi 18 décembre 2012 Statut Membre Dernière intervention 18 décembre 2012
18 déc. 2012 à 14:38
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();
?>
0