Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/05/2008, 19h39   #1
Membre du Club
 
Développeur informatique
Inscription : avril 2008
Messages : 51
Détails du profil
Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : avril 2008
Messages : 51
Points : 43
Points : 43
Par défaut ecriture dans un fichier ,boucle for + SQL

Bonjour ,
j'ai une bdd avec une table "liste" contenant des informations sur des fichiers images ou textes .
Le but de ce script est de constituer un fichier texte contenant le chemin des fichiers appartenant a une certaine liste de façon a pouvoir passer ce fichier en argument d'un programme d'envoi de fichiers .
Le fichier texte doit etre formater de la sorte :
#type_fichier1#<chemin_fichier1>
#type_fichier2#<chemin_fichier2>
etc ...

Pour ce faire je recupere le nom d'une liste venant d'un formulaire puis je recherche dans ma bdd les fichiers qui la constituent .
Comme le resultat de la requete se trouve dans un tableau , je fait une boucle qui me permet: -de recuperer chaque entrée du tableau une par une
-de rechercher son type via une requete SQL
-d'écrire une ligne dans le fichier texte.

Seulement voila , après quelque tests je me rend compte que ma requete sql dans la boucle pose un pb , puisque qd je la met en commentaire et que je rentre un "type" en dur , le fichier est correctement constitué .
Si je décommente cette requete et que je l'affiche , je me rend compte que la variable $chemin_fichier est vide ... (alors qu'elle est bien renseignée si je commente la requete...) .



Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
session_start();
$liendb = mysql_connect("localhost","root", "" );
mysql_select_db("galinet");
$liste=$_POST['liste'];  
$sql="SELECT fichier FROM listes WHERE nom='".$liste."'" ; 
$retour=mysql_query($sql);
$nb_fichier = mysql_num_rows($retour);
 
/*ouverture d'un fichier */
$chemin_liste="./utilisateurs/".$_SESSION['identifiant']."/".$liste;
$fd = fopen($chemin_liste.".gali","a");
 
/*boucle d'écriture des fichier*/
for($i=1;$i<=$nb_fichier;$i++){
	/*récuperation du type de fichier : "image" ou "texte" */
	$tab_liste=mysql_fetch_array($retour);
	$chemin_fichier=$tab_liste['fichier']; 
 	$sql="SELECT type FROM image WHERE chemin='".$chemin_fichier."'"; 
 	$retour=mysql_query($sql);
	$tab_type=mysql_fetch_array($retour);
        $type=$tab_type['type'];
        /*ecriture*/
  	$chaine="#".$type."#".$nom_fichier."\n" ; 
	fwrite($fd,$chaine);
 
 
}


merci d'avance a celui qui peut me proposer une solution .
En espérant avoir été clair ...
lizardman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2008, 20h08   #2
Membre régulier
 
Inscription : avril 2007
Messages : 114
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 114
Points : 98
Points : 98
Envoyer un message via MSN à IGstaff
Je comprends pas trop ton script.
Au premier tour de la boucle, tu vas récupérer le chemin du fichier dans la requête:
$sql="SELECT fichier FROM listes WHERE nom='".$liste."'" ;

Et ensuite tu vas récupérer celui de la requete de la boucle, cad:

$sql="SELECT type FROM image WHERE chemin='".$chemin_fichier."'";

Or ce sont des requetes totalement différentes et jouant sur des tables différentes !

Si le chemin est recueilli avec la première requête, alors sors le bout de script PHP de ta boucle et ça ira mieux...
IGstaff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2008, 20h45   #3
Membre du Club
 
Développeur informatique
Inscription : avril 2008
Messages : 51
Détails du profil
Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : avril 2008
Messages : 51
Points : 43
Points : 43
la premiere requete permet de connaitre les fichiers d'une liste .
la deuxieme requete permet de connaitre le type ( image ou texte ) de chaque fichiers de la liste , j'interroge une table différente car le type des fichiers n'est pas contenu dans la table "liste" .
lizardman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2008, 17h39   #4
Membre régulier
 
Inscription : avril 2007
Messages : 114
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 114
Points : 98
Points : 98
Envoyer un message via MSN à IGstaff
Donc si j'ai bien compris, remplace $retour dans ta boucle par un autre nom de variable(PAS UTILISER !)
IGstaff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h25.


 
 
 
 
Partenaires

Hébergement Web