Boucle While

ouaga
Invité n'ayant pas de compte PHPfrance

12 oct. 2010, 19:08

Bonjour,
Je bute depuis quelques heures sur un problème de boucle.
Je construis depuis une base de données mysql un fichier xml.
Je souhaite avoir x fichiers correspondant à x enregistrements de la base mais je ne comprends pas le processus me permettant de séparer les enregistrements.
En effet, le fichier xml généré reprends tous les enregistrements.

Voici une partie du code

[php]$table = mysql_query("select * from jos_ckforms_1 order by id " ) or die("Impossible de se connecter ligne45") ;
$xml .= '<ACTE>';
while ($row = mysql_fetch_assoc($table))
{
if ($row['F32'] == 0)
{
$xml .= '<Entete>';
$xml .= "\t" .'<MessageId>'.$row['id'].'</MessageId>';
$xml .= "\t" .'<DateEmission>'.$row['created'].'</DateEmission>';
//$xml .= "\t" .'<TypeDemande>'.$row['F27'].'</TypeDemande>';
$xml .= '</Entete>';

$xml .= '<Corps>';
$xml .= '<Titulaire>';
$xml .= '<NomNaissance>'.$row['F1'].'</NomNaissance>';
$xml .= '<Prenoms>'.$row['F2'].'</Prenoms>';
// conversion date de naissance
$date = $row['F28'];

$date_explosee = explode("/", $date);
$jour = $date_explosee[0];
$mois = $date_explosee[1];
$annee = $date_explosee[2];

$xml .= '<DateActe>'.$annee."-".$mois."-".$jour.'</DateActe>';
$xml .= '<Filiation>';
$xml .= '<Pere>';
$xml .= '<Nom>'.$row['F5'].'</Nom>';
$xml .= '<Prenoms>'.$row['F6'].'</Prenoms>';
$xml .= '</Pere>';
$xml .= '</Filiation>';
$xml .= '</Titulaire>';


$xml .= '</Corps>';
$xml .= '</ACTE>';


$name = $row['id'];
$ext = ".xml";
$ext1 = "EC2010-" ;
$ext2 = $row['created'];
$ext3 ="-";
//echo $ext ;
$nomfichier = $ext2.$ext3.$name.$ext ;
$fp = fopen($nomfichier, 'w+');
fputs($fp, $xml);
fclose($fp);

mysql_query("UPDATE jos_ckforms_1 SET F32=2 WHERE F32=0");

}
}


// on ferme sa connexion au serveur
mysql_close();
?>[/php]

Il y a très certainement un $i à placer mais je ne sais où !
Merci de votre aide

ViPHP
xTG
ViPHP | 7331 Messages

12 oct. 2010, 19:56

Tu ne vides pas ta variable $xml à chaque itération del a boucle while. ^_-

ouaga
Invité n'ayant pas de compte PHPfrance

12 oct. 2010, 21:02

Merci pour ta réponse.
Un unset pourrait donc faire 'l'affaire', à moins qu'une autre commande existe.

ViPHP
xTG
ViPHP | 7331 Messages

12 oct. 2010, 21:58

$xml = "";
C'est toute une histoire de déclarer des variables. :)

ouaga
Invité n'ayant pas de compte PHPfrance

14 oct. 2010, 08:50

Merci pour tes lumières.