Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   import de fichier txt vers bdd mysql (http://www.ndfr.net/forums/showthread.php?t=3088)

bargio 09-12-2003 14:45

import de fichier txt vers bdd mysql
 
Salut à tous,

Je suis en train de mettre à jour un de mes sites de partitions de chansons de JJG... Sur la vieille version j'avais stocké les tablatures dans des fichiers txt.

Je cherche donc à faire l'import du contenu des fichiers txt dans ma bdd...

Mais ça coince et ça ne fonctionne pas... Apparemment c'est juste "l'update" qui ne fonctionne pas, vu que si je fais un echo $buffer avant l'update, j'ai bien ce que je cherche à avoir dans la variable... Si vous avez une idée...

Voici le code :

PHP Code:

 
$query
="select id, fichier from jjgtab_morceaux";  
$succes mysql_query($query,$db) or die("argh !!!");  
while(
$a_row mysql_fetch_array($succes))  {  
        
$id $a_row[id];  
        
$fichier $a_row[fichier];  
    
   
$inF fopen($fichier,"r");   
     while(!
feof($inF))
     { 
 
     
$buffer=fgets($inF4096);
     
$buffer=addslashes($buffer);
             
     
$sql "UPDATE jjgtab_morceaux SET tab='$buffer' where id=\"$id\"" ;
     
$succes2 mysql_query($sql,$db) or die("argh !!!");  
     
    }
      
    
fclose($inF); 



Merci beaucoup :)

Seb

fonji 09-12-2003 16:08

Re: import de fichier txt vers bdd mysql
 
Déjà à la place de faire argh dans tes or die(), fais plutot un mysql_error();
Ensuite, mets des \' à la place des ', php risque de ne pas interprêter ta variable.

bargio 09-12-2003 16:17

Re: import de fichier txt vers bdd mysql
 
Merci pour ta réponse !

J'ai testé les erreurs, et il n'y en a pas... Je n'ai pas mis ça dans le code, pour ne pas vous gonfler à le lire (parce que je sais que c'est pénible de se plonger dans le code de quelqu'un d'autre ;)

Le problème se situe au moment de l'update en fait...

Surtout que, je ne sais pas pourquoi, mais pour deux chansons sur les 116 il y a deux vers (au milieu de la chanson en plus) qui sont updatés... Donc, vraiment je ne comprends pas !!!

Seb

bargio 09-12-2003 16:28

Re: import de fichier txt vers bdd mysql
 
Bon, en fait, je crois que j'ai trouvé d'où vient le problème...

Je lis ligne après ligne et donc j'affiche ligne après ligne...

Si je fais ça :

PHP Code:

while($a_row mysql_fetch_array($succes))  {  
        
$id $a_row[id];  
        
$fichier $a_row[fichier];  
    
   
$inF fopen($fichier,"r");   
     while(!
feof($inF))
     { 
 
     
$buffer=fgets($inF4096);
   
    }
      
    
$buffer=addslashes($buffer);
    echo 
$buffer
    echo 
test

J'obtiens : "test" et c'est tout et donc $buffer est vide !!!

JE COMPRENDS PLUUUUUUUUUUUUUS !!!! :(

Seb

fonji 09-12-2003 20:12

Re: import de fichier txt vers bdd mysql
 
Euh déjà faut faire
PHP Code:

$buffer.=fgets($inF4096); 

si ca marche toujours pas, essaye d'utiliser un fread() à la place d'un fgets(), théoriquement ca devrait à peu près rien changer, mais j'ai toujours utilisé fread() qui m'a toujours retourné tout le fichier...

Tu devrais aussi tester si ton fopen il marche très bien et avec ton fgets() pareil, du genre :
PHP Code:

 if(!$inF fopen($fichier,"r") {
      echo 
"Ya un blem";
 } 

et
PHP Code:

if(!$buffer=fgets($inF4096)){
     echo
"autre blem";
 } 


bargio 09-12-2003 20:16

Re: import de fichier txt vers bdd mysql
 
Bon, j'ai bossé dessus toute l'après midi, mais en fait tu as raison, il y avait bel et bien un problème dans le fget, je ne choppais qu'une ligne à la fois et j'écrasais ce qu'il y avait avant... Le resultat me semblait vide, mais en fait c'était juste la dernière ligne...

Bon par contre j'ai une autre question...

Pour passer d'une page à l'autre j'utilise un index.php?album=$album

problème : lorsque le titre de l'album fait plus d'un mot. Pour l'instant je m'en sors avec un like $album% mais c'est pas top. Comment faire pour passer les espaces (en %20) dans l'url ?

Merci beaucoup Fonji !

Seb

fonji 09-12-2003 20:20

Re: import de fichier txt vers bdd mysql
 
Quote:

Originally Posted by bargio
Bon, j'ai bossé dessus toute l'après midi, mais en fait tu as raison, il y avait bel et bien un problème dans le fget, je ne choppais qu'une ligne à la fois et j'écrasais ce qu'il y avait avant... Le resultat me semblait vide, mais en fait c'était juste la dernière ligne...

Ca c'est le petit "." qu'on oublie quand c'est pas le ";", et c'est plus |¢§°¬§°# pask y a pas d'erreur ;)

Quote:

Originally Posted by bargio
Bon par contre j'ai une autre question...

Pour passer d'une page à l'autre j'utilise un index.php?album=$album

problème : lorsque le titre de l'album fait plus d'un mot. Pour l'instant je m'en sors avec un like $album% mais c'est pas top. Comment faire pour passer les espaces (en %20) dans l'url ?

euh... y a une super fonction hypergéniale qui s'appelle urlencode($string);

Quote:

Originally Posted by bargio
Merci beaucoup Fonji !

Seb

Y a pas de quoi, mais pour moi c'est l'inverse de LeMoi, y a pas de majuscule stp ;)

bargio 09-12-2003 20:44

Re: import de fichier txt vers bdd mysql
 
Quote:

Originally Posted by fonji
Ca c'est le petit "." qu'on oublie quand c'est pas le ";", et c'est plus |¢§°¬§°# pask y a pas d'erreur ;)

Oh oui !!!

Quote:

euh... y a une super fonction hypergéniale qui s'appelle urlencode($string);
Oui, mais en fait si j'ai :

$album=Non Homologué

a href... index.php3?album=$album

Dans l'url de la page suivante j'ai index.php3?album=Non

Et j'aimerai avoir un truc du style index.php3?album=Non%20Homologué

Quote:

Y a pas de quoi, mais pour moi c'est l'inverse de LeMoi, y a pas de majuscule stp ;)
Ah oui ;) Pardon :) Je suis d'autant plus désolé, que je refuse, comme toi la majuscule à bargio ;)

Seb

LeMoi 09-12-2003 21:17

Re: import de fichier txt vers bdd mysql
 
Quote:

Originally Posted by fonji
Y a pas de quoi, mais pour moi c'est l'inverse de LeMoi, y a pas de majuscule stp ;)

lol, je savais pas que c'était aussi important pour d'autres personnes :p:D

fonji 10-12-2003 12:04

Re: import de fichier txt vers bdd mysql
 
Quote:

Originally Posted by LeMoi
lol, je savais pas que c'était aussi important pour d'autres personnes :p:D

y a pour stan aussi que c'est important ;)

Sinon bargio ce qu'il te faut faire c'est :
$album=urlencode("Non homologué");
et tu vas te retrouver avec Non%20homologu&Emachin dans $album.... C'est exactement ce qu'il te faut !

Ou alors tu fais
$album = "non homologué";
$album = urlencode($album);

Et après ca joue...

bargio 10-12-2003 13:36

Re: import de fichier txt vers bdd mysql
 
Merci fonji ;)

Mais finalement je me suis débrouillé autrement, j'ai fait une table de liaison et j'ai collé un numéro à chaque album. Et je me sers de ce numéro du coup. C'est plus propre... :)

Seb

fonji 10-12-2003 17:39

Re: import de fichier txt vers bdd mysql
 
Quote:

Originally Posted by bargio
Merci fonji ;)

Mais finalement je me suis débrouillé autrement, j'ai fait une table de liaison et j'ai collé un numéro à chaque album. Et je me sers de ce numéro du coup. C'est plus propre... :)

Seb

Yapadkouaw :)

Effectivement c'est nettement plus mieux, mais le jour ou tu seras obligé de transformer un string pour le passer par l'url ben tu sauras quelle fonction utiliser ;)

bargio 10-12-2003 18:22

Re: import de fichier txt vers bdd mysql
 
Yep ! Merci encore !


Seb


All times are GMT +2. The time now is 02:30.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.