Page 1 sur 1

Boucle While

Posté : 12 oct. 2010, 19:08
par ouaga
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

Re: Boucle While

Posté : 12 oct. 2010, 19:56
par xTG
Tu ne vides pas ta variable $xml à chaque itération del a boucle while. ^_-

Re: Boucle While

Posté : 12 oct. 2010, 21:02
par ouaga
Merci pour ta réponse.
Un unset pourrait donc faire 'l'affaire', à moins qu'une autre commande existe.

Re: Boucle While

Posté : 12 oct. 2010, 21:58
par xTG
$xml = "";
C'est toute une histoire de déclarer des variables. :)

Re: Boucle While

Posté : 14 oct. 2010, 08:50
par ouaga
Merci pour tes lumières.