Page 1 sur 1

Ecrire dans un fichier texte le contenu d'une BDD

Posté : 21 oct. 2006, 14:55
par DaD
Salut,
je voudrais copier dans un fichier le contenu d'une BDD, mais je n'arrive pas à transformer les data récupérer dans la base en variable (à cause d'une erreure de sytaxe, à priori). voilà le code que j'utilise :

Code : Tout sélectionner

include("connect_base.php"); // On va lire les enregistrement dans la base $sql = 'SELECT * FROM user ORDER BY login ASC;'; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on va scanner tous les tuples un par un et on les écrit dans le fichier (en créant le fichier) while ($data = mysql_fetch_array($req)) { //Ouverture du fichier $fp = fopen("../p/xx.txt","a+"); // on écrit le login dans le fichier fputs($fp, '$data["login"]'); // on écrit ":" dans le fichier fputs($fp, ":"); // on écrit le login dans le fichier fputs($fp, '$data["pass"]'); // on va a la ligne fputs($fp, "\r\n"); //on ferme le fichier fclose($fp); }
du coup dans le fichier, il m'écrit :
$data["login"]:$data["pass"]

quelqu'un saurait comment je doit syntaxer mes variable dans mon while?
Merci d'avance
+
DaD

Posté : 21 oct. 2006, 15:34
par Ajoloca
Bonjour,

Quelques modifications,

Le fichier ne doit être ouvert qu'une fois avant de le traiter et fermé une seule fois, après traitement.
$fp = fopen("../p/xx.txt","a+"); // Si tu veux conserver d'anciennes données
$fp = fopen("../p/xx.txt","w"); // Si tu veux écraser d'anciennes données
Tu l'ouverture choisis en fonction de ce que tu veux
include("connect_base.php");
// On va lire les enregistrement dans la base
$sql = 'SELECT * FROM user ORDER BY login ASC;';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on va scanner tous les tuples un par un et on les écrit dans le fichier (en créant le fichier)
//Ouverture du fichier
   $fp = fopen("../p/xx.txt","a+"); // A CHOISIR
   while ($data = mysql_fetch_array($req)) {
      // On crée une variable vide
      $ligne ='';
      // On concatène toutes les variables (Pour écrire une ligne)
      $ligne = $data['login'] . ':' . $data['pass'] . '\r\n');
      // on écrit dans le fichier 
      fputs($fp, $ligne);
   } // FIN DU TRAITEMENT
   //on ferme le fichier 
   fclose($fp);
?>

Posté : 21 oct. 2006, 15:49
par DaD
Merci pour ton aide Ajoloca
Effectivement c'est bien plus propre...

Parcontre, j'ai encore un message d'erreure de syntaxe dans cette ligne :

Code : Tout sélectionner

$ligne = $data['login'] . ':' . $data['pass'] . '\r\n');
voilà le message , peut etre que j'interprète mal l'erreure :

Code : Tout sélectionner

Parse error: parse error in c:\program files\easyphp1-8\www\anthese_mp\admin\suppresion_user.php on line 44
la ligne 44 étant celle que j'ai copier juste avant, évidement.

Posté : 21 oct. 2006, 15:52
par Ajoloca
Re,
Excuse, une parenthèse s'est glissée involentairement

Code : Tout sélectionner

$ligne = $data['login'] . ':' . $data['pass'] . '\r\n';

Posté : 21 oct. 2006, 15:54
par DaD
Juste après avoir poster, je l'ai vu...je ferais mieux de réfléchir, avant de poster...

Merci beaucoups pour ton aide, ça fonctionne impec...
+
DaD