IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

ecriture dans un fichier ,boucle for + SQL


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 94
    Points
    94
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ...

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 136
    Points
    136
    Par défaut
    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...

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 94
    Points
    94
    Par défaut
    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" .

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 136
    Points
    136
    Par défaut
    Donc si j'ai bien compris, remplace $retour dans ta boucle par un autre nom de variable(PAS UTILISER !)

Discussions similaires

  1. Boucles et ecritures dans un fichier
    Par scariou29 dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 11/01/2011, 16h09
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo