écrire dans un fichier avec php

Fermé
joujma - 22 juil. 2009 à 12:54
foobar47 Messages postés 13536 Date d'inscription jeudi 9 janvier 2003 Statut Contributeur Dernière intervention 16 mai 2014 - 22 juil. 2009 à 14:07
bonjour les amis,
je voulais modifier un fichier xml de façon que j'y ajoute des données existant dans ma base de données, ce fichier xml représente une liste d'écoute de chanson que je lirai après avec un lecteur media construit avec flash.le problème est que je n'ai réussi qu'à écrire la dernière ligne de la table existante dans ma base de données.

Voici le code que j'utilise:

<?php
$link=mysql_connect("localhost","root","") or die("echec serveur");
$db=mysql_select_db('musique') or die("echec base");
$req=mysql_query("select * from liste")or die ("echec requete1");
$count=mysql_num_rows($req);

$Fnm = "playlist.xml";

$inF = fopen($Fnm,"r+");


//La position du pointeur est dans :
$ptr = ftell($inF);


//et est modifiable par :
$ptr = fseek($inF,$ptr);


$texte='<?xml version="1.0" encoding="iso-8859-1"?>
<playlist>';
while($tab=mysql_fetch_row($req))

{
$text1=$tab[0].$tab[1].$tab[2];
}
$text2='</playlist>';



fwrite($inF,$texte.$text1.$text2);


//Enfin fermer le fichier
fclose($inF); ?>
A voir également:

1 réponse

foobar47 Messages postés 13536 Date d'inscription jeudi 9 janvier 2003 Statut Contributeur Dernière intervention 16 mai 2014 532
22 juil. 2009 à 14:07
Salut,

Ton fwrite($inF,$texte.$text1.$text2); est en dehors de ta boucle, donc au final, tes variables sont remplies avec les dernières valeurs de la boucle...

Essaye de mettre ton fwrite($inF,$texte.$text1.$text2); dans ta boucle, tout en adaptant tes écritures précédentes comme ceci peut-être, à valider :

#debut de la liste
$texte='<?xml version="1.0" encoding="iso-8859-1"?>
<playlist>';
fwrite($inF,$text);
#la liste
while($tab=mysql_fetch_row($req))
{
$text1=$tab[0].$tab[1].$tab[2];
fwrite($inF,$text1);
}
#fin de la liste
$text2='</playlist>';
fwrite($inF,$text2);


0