Selection de données mysql pour ecrire dans un fichier

Selection de données mysql pour ecrire dans un fichier - PHP - Programmation

Marsh Posté le 22-06-2005 à 12:18:12    

Bonjour,  
 
j'ai fait une page web en php afin d'afficher les adresses email (saisies dans un formulaire) grâce à une requête de selection en sql qui va les chercher dans la base de données mysql hébergé sur le serveur web, tout ce qu'il y a de plus simple.  
Dans le même temps, je veux que ces adresses s'affichent également dans un fichier texte par le biais de l'ecriture dans un fichier.
 
Résultats :  
- la sélection des adresses a bien lieu et elles s'affichent dans ma page web, ==> ok  
- ces mêmes adresses ne s'affichent pas dans le fichier texte (qui se trouve sur le serveur web) et j'ai cette ligne "Resource id #4Resource id #4" au lieu d'avoir les adresses.
 
Voici le script :  
<debut du script>
 
// on crée la requête SQL
$sql = 'SELECT destinataire, date FROM mail ORDER BY destinataire';
 
//Traitement de la requête
$req = mysql_query($sql) or die('Erreur dans la requête SQL !<br>'.$sql.'<br>'.mysql_error());
$texte = $req;
 
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
   //on affiche les informations ligne par ligne  
   echo  '<br>' .$data['destinataire']  ;    
   
   // ecriture dans un fichier
   $fichiertxt = ("ftp://login:motdepasse@nom_du_serveur_ftp/fichier.txt" );      
   
   //ouverture du fichier texte
   $fichiertxt = fopen("lesemails.txt","w" );    
 
   // ecriture des données dans le fichier texte  
   fwrite($fichiertxt,$texte);      
 
   //saisir les emails sur une ligne  
   fputs($fichiertxt,$texte."\n" );    
 
   // femerture du fichier texte  
   fclose($fichiertxt);      
}
 
// on ferme la connexion à mysql
mysql_close();  
 
</fin du script>
 
Aidez moi à trouver l'erreur, je vous remercie d'avance.  :jap:

Reply

Marsh Posté le 22-06-2005 à 12:18:12   

Reply

Marsh Posté le 22-06-2005 à 15:34:31    

  • Pourquoi accéder au fichier via FTP s'il est sur le serveur ouèbe ?  :heink:  
  • Pourquoi accéder au fichier (ouverture, écriture, fermeture) à chaque tour de boucle alors que tu peux l'ouvrir avant la boucle et le fermer après ?  :heink:  
  • Pourquoi écrire le contenu de $texte alors que $texte = $req :heink:  


 
:jap:

Reply

Marsh Posté le 22-06-2005 à 16:02:31    

tu as utilisé deux fois la variable $fichiertxt sans t'en rendre compte : une fois pour écrire ce que tu voulais, une autre fois en tant que ressources d'ouverture du fichier.
 
Du coup $fichiertxt correspond à la ressource et t'écris Resource id #4Resource id #4 dans ton fichier.
 
Modifie donc ce passage :  

Code :
  1. //ouverture du fichier texte
  2.    $fichiertxt = fopen("lesemails.txt","w" );


 
change le nom


Message édité par Djebel1 le 22-06-2005 à 16:03:04
Reply

Marsh Posté le 23-06-2005 à 15:14:47    

ok merci pour vos infos, j'ai modifié mon code mais le resultat est le meme : mon fichier texte contient toujours la fameuse ligne(resource...)  :??:  
 
<debut>
[...]
//Traitement de la requête
$req = mysql_query($sql) or die('Erreur dans la requête SQL !<br>'.$sql.'<br>'.mysql_error());
$texte = $req;
 
//ouverture du fichier texte
$file = fopen("lesemails.txt","w+" );  
 
while($data = mysql_fetch_assoc($req))
{
  echo '<br>' .$data['destinataire'] ;
 
  //ecriture des données dans le fichier texte  
  fwrite($file, $texte);      
   
  //saisir les emails sur une ligne
  fputs($file, $texte."\n" );    
 
}
 
// femerture du fichier texte  
fclose($file);
 
[...]  
<fin>

Reply

Marsh Posté le 23-06-2005 à 15:27:34    

Ben ouais... Tu fais :

fwrite($file, $texte);


Alors que $texte est le résultat de la requête :??: Il faut faire :

fwrite($file, "\n" . $data['destinataire']);


Y'a des fois... :D

Reply

Marsh Posté le 23-06-2005 à 16:09:54    

FlorentG a écrit :

Ben ouais... Tu fais :

fwrite($file, $texte);


Alors que $texte est le résultat de la requête :??: Il faut faire :

fwrite($file, "\n" . $data['destinataire']);


Y'a des fois... :D


 
 
 :love:  wouhouuuu !!! ça marche  :)  
merci m'sieur !
ça craint l'erreur sur fwrite, y'a des fois... :sweat:  :lol:  
 
 :jap:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed