Fichier externe en php

MOOVe -  
MOOVe Messages postés 6 Statut Membre -
Salut,

je vous mets un etat des lieux :
j'ai une table dans une BD MySQL qui continent les colonnes ID, Title, Ficname, StampTime
la colonne ficname contient le nom de fichiers texte
je cherche en PHP à lire tous les enregs de la table, et à afficher le resultat dans un tableau (ca je sais faire) mais pour la colonne ficname, je voudrais obtenir le contenu des fichiers texte (ca je sais pas faire)

quelqu'un peut m'aider ???

ps: j'ai fait une recherche mais j'ai rien trouvé sur ce sujet...

9 réponses

  1. Bobinours Messages postés 2903 Statut Membre 504
     
    C'est du PHP après avoir exécuté ta requête SQL et stocké le résultat.

    Pour chaque enregistrement de ta base récupérés, il faut que tu fasses un fopen() puis fread() de ton fichier... : http://fr3.php.net/manual/fr/function.fread.php
    0
  2. MOOVe
     
    peux tu etre un peu plus locace sur le sujet ? (mise en oeuvre...)

    MOOVe

    please don't MOOVe
    0
  3. Bobinours Messages postés 2903 Statut Membre 504
     
    Que n'as-tu point compris ?
    0
  4. MOOVe Messages postés 6 Statut Membre
     
    Ce que je n'ai pas compris, c'est comment tu utilises la valeur lu dans la table pour acceder au fichier...et pour chaque enreg. J'arrive parfaitement à comprendre le process mais il me manque la technique pour y parvenir...

    _________________________________________________________
    MOOVe
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Bobinours Messages postés 2903 Statut Membre 504
     
    Dans ta table MySQL, tu stockes les noms de fichier (exemple: donnees.txt).

    Une fois que tu as récupéré le nom du fichier dans $nom_fichier (grace à une requête : SELECT Ficname FROM table), tu spécifies le chemin d'accès à ton image (path) :
    $fichier = "/repertoire/".$nom_fichier;

    Maintenant il ne te reste plus qu'à ouvrir le fichier $fichier : "/repertoire/donnees.txt"
    fopen($fichier);

    Puis le lire (fread()) et l'afficher (print).
    0
  7. MOOVe Messages postés 6 Statut Membre
     
    Merci de ta reponse, je comprends bien ton exemple mais en fait je modifie ce code :

     
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    	
            print "\t<tr>\n";
    	
            foreach ($line as $col_value) {
    		print "\t\t<td class=$lig $col_value </td>\n"; 
    		
    	} 
    		   
    		    print "\t</tr>\n";
    
    


    Et je ne sais pas comment a partir de la (dans le foreach) je recupere la valeur de chaque enregistrement de la colonne ficname pour lire le fichier externe...

    _________________________________________________________
    MOOVe
    0
  8. Bobinours Messages postés 2903 Statut Membre 504
     
    Je ne sais pas comment l'adapter simplement avec ton code mais regarde ceci :
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    	
            print "\t<tr>\n";
    	
            $fd = fopen($line[Ficname]);
            $contenu = fread($fd);
            fclose($fd);
    
    	print "\t\t<td> $contenu </td>\n"; 
    
    	print "\t</tr>\n";
    
    }

    0
  9. MOOVe Messages postés 6 Statut Membre
     
    Merci beaucoup...je crois que je viens d'avoir le declic ;-)
    _________________________________________________________
    MOOVe
    0
  10. MOOVe Messages postés 6 Statut Membre
     
    si ca peux aider quelqu'un voila comment je me suis debrouillé...

    	 $result=mysql_query($sql_query);
      	 while ($line = mysql_fetch_array($result, MYSQL_BOTH)) 
    	 {
    	    print "	<tr>
    ";
    	
    	$sujet = $line[0] ;
    		$fichier = ".\news\" . $line["ficname"];
    	 $fd = fopen("$fichier", "r");
            $contenu = nl2br(fread($fd, filesize ($fichier)));
            fclose($fd);
    	$ndate = $line[2];
    print "		<td class=$lig $sujet </td>
    ";
    print "		<td class=$lig $contenu </td>
    ";
    print "		<td class=$lig $ndate</td>
    "; 	
    		   
    		    print "	</tr>
    ";
        }
    


    _________________________________________________________
    MOOVe
    0