Inserer un fichier dans la base Mysql

Inserer un fichier dans la base Mysql - PHP - Programmation

Marsh Posté le 14-06-2005 à 10:38:37    

Bonjour
 
Je voudrai inserer un fichier csv dans ma base de donnees.
 
J ai un script : et l erreur qu il m affiche est la suivante :
 

Notice: Undefined offset: 1 in c:\program files\easyphp1-7\www\tdiwer\upload_file2.php on line 17
 
Notice: Undefined offset: 2 in c:\program files\easyphp1-7\www\tdiwer\upload_file2.php on line 17 ........................


 
et voici mon code :

Code :
  1. <?
  2. $fd = fopen ("Fichiers/{$f1_name}", "r" );
  3.   $i=0;
  4.   $line = fgets($fd,4096);
  5.   while (!feof ($fd))
  6.   {
  7.    $line = fgets($fd,4096);
  8.    $tab_customer = split(";",$line);
  9.  
  10.    //insertion dans la table
  11.    $sql = " insert into users (code_user,type_user,code_pays,nom_user,email_user,password_user,";
  12.    $sql .= " date_creation,heure_creation,date_acces,heure_acces,code_donneur_client) ";
  13.    $sql .= " values ( ";
  14.  
  15.   for ($i=0; $i<6; $i++)
  16.    {
  17.     $sql .= " '" . addslashes($tab_customer[$i]) . "', ";
  18.    }
  19.   for ($i=6; $i<7; $i++)
  20.    {
  21.     $sql .= " '" . date("Y-m-d" ). "', ";
  22.    }
  23.    for ($i=7; $i<8; $i++)
  24.    {
  25.     $sql .= " '" . date("H:i:s" ). "', ";
  26.    }
  27.    for ($i=8; $i<9; $i++)
  28.    {
  29.     $sql .= " '" . date("Y-m-d" ). "', ";
  30.    }
  31.    for ($i=9; $i<10; $i++)
  32.    {
  33.     $sql .= " '" . date("H:i:s" ). "', ";
  34.    }
  35.    $sql .= " '" . addslashes($tab_customer[11]) . "')";
  36.  
  37.    mysql_query( $sql ) or die ("Requête invalide" );
  38.    $i++;
  39.    }// fin while
  40. fclose ($fd);


 
Je vous remercie infiniment de votre aide.


Message édité par zenabN le 15-06-2005 à 10:30:52
Reply

Marsh Posté le 14-06-2005 à 10:38:37   

Reply

Marsh Posté le 14-06-2005 à 10:46:34    

je peux me tromper, mais il existe une fonction toute faite pour mettre le contenu d'un fichier bien formé en bdd ...
 
http://dev.mysql.com/doc/mysql/fr/load-data.html
 
Celle la :p


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 14-06-2005 à 11:05:58    

Merci
 
Mais je ne veux pas inserer tous les champs du fichiers et y en a ou je complete par des fonctions php date...
ca me parait plus compliqué dans ce cas d utiliser Syntaxe de LOAD DATA INFILE  
 
Le pire avec ce script j'insere bien mes données dans la base mais en meme temps il me fait cette erreur...


Message édité par zenabN le 14-06-2005 à 11:07:22
Reply

Marsh Posté le 14-06-2005 à 13:55:08    

Personne pour moi ?????????

Reply

Marsh Posté le 14-06-2005 à 14:50:50    

split() découpe l'entrée pour en faire un tableau.
peut etre qu'il n'y avait rien entre les points-virgule.

Reply

Marsh Posté le 14-06-2005 à 16:30:20    

Je ne comprend pas ce que tu veux dire ritzle.
Sinon voici un exemple du fichier que j insere :  

K13 ; C ; A ; Asc Ot ; ot@asc.com ; xot ; password ; ; ; ; ; IGS
L02 ; C ; A ; quide ; iq@quide.fr ; xliq ; password ; ; ; ; ; IGS
M45 ; C ; A ; Saint ; saint@saint.fr ; xsgob ; password ; ; ; ; ; IGS


Message édité par zenabN le 14-06-2005 à 16:32:36
Reply

Marsh Posté le 14-06-2005 à 17:02:46    

Utilise fgetcsv(), plus pratique.

Reply

Sujets relatifs:

Leave a Replay

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