sauvegarder contenu base dans un ficier txt ou xls

Répondre
pierre27
le 26/11/2007 à 10:27
pierre27
bonjour a tous
le titre est assez explicite
je souhaite sauver mes donnée de ma base dans un fichier a partir d'une page php
g donc un script mais qui n'ecrit pas dans mon fichier
a la ligne 26 il est bien ecrit courrierdepart quand j'ote le commentaire
mais a la ligne 27 rien
quelqu'un pourrait t-il me mettre sur la voie
d'avance merci
<? 

include "config.php3";
// on se connecte à la base de donnée
$dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion");
// on selectionne votre base
mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base");
$sql = mysql_query(" SELECT ID, date, code, objet, desti, expe, annee from courrierdepart");
$res = mysql_numrows($sql); // on compte le nombre de résultats


$file = ("courrier.xls");
if(!$myfile = fopen($file,"w")) //on ouvre le fichier
{
print("erreur: ");
print("'$file' n'existe pas!\n");
exit;
}

WHILE($res!=$i) // chaque fois que "$res" est dif. de "$i", donc qu'il y a un enreg.

{
$recup = mysql_result($sql,$i); // on récupère les champs

//ecriture
//fputs($myfile,"* courrierdepart\n");
fwrite($myfile,"$ID\t $code\t $objet\t $desti\t $expe\t $date\t $annee\n"); //on insère une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne

$i++;
}

//fermeture fichier
fclose($myfile); //on ferme le fichier
echo "<center><h2>La table 'courrier envoyé 2007' a été sauvegardée...</h2></center>";

mysql_close(); // on ferme la connexion
?>
<form name="quit">
<center><br><br><input type="button" value="Fermer" onClick="self.close()" name="button3"></center>
</form>
LA GLOBULE
le 26/11/2007 à 13:33
LA GLOBULE
Et si tu fais un echo de $ID\t$code\t$objet\t$desti\t$expe\t$date\t$annee\n, ca affiche des trucs ?
LA GLOBULE
le 26/11/2007 à 16:12
LA GLOBULE
Bon ben voila, ton fichier est vide et c'est normal puisque tes variables sont vides.
Donc ton soucis se situe au niveau de la récupération des données de ta base.

Typiquement, toutes les variables que tu utilises pour le contenu de ton fichier sont vides, elles sont déclarées nulle part.
pierre27
le 27/11/2007 à 10:13
pierre27
bonjour
voilà g fait la modif suivante
mais le souci c qu il me copie que le premier enregistrement de la base et çà autant de fois qu'il y a d'enregistrement
pourquoi???et que dois modifié exactement
<? 

include "config.php3";
// on se connecte à la base de donnée
$dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion");
// on selectionne votre base
mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base");

$sql =mysql_query ('SELECT ID, date, code, objet, desti, expe, annee FROM courrierdepart');
$res = mysql_numrows($sql); // on compte le nombre de résultats

$data = mysql_fetch_array($sql);

$file = ("courrier.xls");
if(!$myfile = fopen($file,"w")) //on ouvre le fichier
{
print("erreur: ");
print("'$file' n'existe pas!\n");
exit;
}

WHILE($res!=$i) // chaque fois que "$res" est dif. de "$i", donc qu'il y a un enreg.

{
$recup = mysql_result($sql,$data,$i); // on récupère les champs

//ecriture
fputs($myfile,"$data[ID]\t $data[code]\t $data[objet]\t $data[desti]\t $data[expe]\t $data[date]\t $data[annee]\t\n");
//fwrite($myfile,"$ID\t $code\t $objet\t $desti\t $expe\t $date\t $annee \n"); //on insère une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne


$i++;
}

//fermeture fichier
fclose($myfile); //on ferme le fichier
echo "<center><h2>La table ~~courrier envoyé 2007~~' a été sauvegardée...</h2></center>";

mysql_close(); // on ferme la connexion
?>
<form name="quit">
<center><br><br><input type="button" value="Fermer" onClick="self.close()" name="button3"></center>
</form>
[/code]
i M@N
le 27/11/2007 à 11:10
i M@N
Hello.

C'est normal, ton fputs n'écrit dans ton fichier $myfile que la dernière ligne puisqu'il est dans la boucle while ...
modifie comme ça (pas testé, ça bug p'tet avec les " ):
<?php
/*chaque fois que "$res" est dif. de "$i", donc qu'il y a un enreg.*/
WHILE($res!=$i) {
$recup = mysql_result($sql,$data,$i); /*on récupère les champs*/
/*on crée une variable $temp qui va se remplir avec les champs les uns à la suite des autres*/
$tmp = $tmp."$data[ID]\t$data[code]\t$data[objet]\t$data[desti]\t$data[expe]\t$data[date]\t$data[annee]\t\n"
$i++;
}
/*ecriture*/
fputs($myfile,$tmp);
?>[/code]

@+...
One Love, One Heart, One Unity.
i M@N
le 27/11/2007 à 11:11
i M@N
manque un ;
<?php
$tmp = $tmp."$data[ID]\t$data[code]\t$data[objet]\t$data[desti]\t$data[expe]\t$data[date]\t$data[annee]\t\n";
?>[/code]
One Love, One Heart, One Unity.
pierre27
le 27/11/2007 à 13:54
pierre27
merci pour ta reponse mais çà ne change rien exactement le meme resultat

toute fois g çà comme erreur
fois le nbre d enregistrement
Warning: mysql_result(): Bad column offset specified in c:\easyphp1-8\www\courrier\sauvea.php on line 25
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours