[Résolu] Importer un fichier .xsl dans une BDD

Importer un fichier .xsl dans une BDD [Résolu] - PHP - Programmation

Marsh Posté le 08-07-2007 à 21:33:38    

Bonsoir à tous,
Je suis "fausse" débutante en php, j'aimerais savoir comment faire pour importer un fichier .xsl (ou .csv)dans une BDD, bon j'ai comme même fais une petite recherche, résultat est qu'il faut utiliser INFILE..  
j'essayerais dans la semaine d'avancer la dessus. mais ma question est; où inserer le script, pour qu'il effectue l'importation à chaque mise à jour du fichier excel?? et aussi est ce qu'il ya la possibilité d'insérer différents champs dans différentes tables de la même bdd.
NB: j'utilise easyphp.
merci d'avance!


Message édité par sabbahh le 28-04-2008 à 12:06:24
Reply

Marsh Posté le 08-07-2007 à 21:33:38   

Reply

Marsh Posté le 09-07-2007 à 11:49:29    

soit les colonnes de ton csv sont identiques à celles de ta bd, auquel cas un simple import en csv via l'ihm de phpmyadmin fera l'affaire. Sinon, ben un petit script php qui lit ton fichier csv ligne par ligne et mappe les colonnes de ton fichier avec celles de ta bd et réalise l'insertion.

Reply

Marsh Posté le 20-07-2007 à 11:40:22    

rufo a écrit :

soit les colonnes de ton csv sont identiques à celles de ta bd, auquel cas un simple import en csv via l'ihm de phpmyadmin fera l'affaire. Sinon, ben un petit script php qui lit ton fichier csv ligne par ligne et mappe les colonnes de ton fichier avec celles de ta bd et réalise l'insertion.


Reply

Marsh Posté le 20-07-2007 à 11:45:34    

Je trouve que j'ai bien avancer sur mon script, mnt j'ai créé un script permettant d'insérer mon .csv ds ma bdd, de le modifier aussi (modifie les valeurs, insére les nouveaux enregistrements).
mon soucis mnt c'est que je n'arrive pas à supprimer les enregistrement qui n'existent plus dans mon .csv
ça m'embête beaucoup, je suis vraiment bloquée la dessus, et pourtant j'ai essayé de parcourir mon .csv et de le comparer avec mes enregistrements dans la bdd.
et sinon c'est quoi ce ihm de phpMadmin?

Reply

Marsh Posté le 20-07-2007 à 13:12:41    

phpMyAdmin : c'est une ihm pour administrer mysql. cf google
 
Pour ton pb, pourquoi tu ne vides pas ta table avant d'insérer le contenu de ton csv?

Reply

Marsh Posté le 20-07-2007 à 16:38:08    

rufo a écrit :

phpMyAdmin : c'est une ihm pour administrer mysql. cf google
 
Pour ton pb, pourquoi tu ne vides pas ta table avant d'insérer le contenu de ton csv?


 
Ben parceque je veux faire les choses proprement :s enfin je veux me la peter un peu.. ;) mais ça ne risque pas d'arriver.
Non je ne sais pas trop, je prefere cette solution et pourtant j'y pensais..
je vais te dire où j'en ai: la requête suivant pourrait résoudre le problème:  
      $queryDLT=" DELETE FROM $fichiers[$i] ";
      $queryDLT .= " where {$DATA[$i][0]} not in ";
      $queryDLT .= "(";  
      $queryDLT .= " select {$DATA[$i][0]} from  $fichiers[$i]";
      $queryDLT .= " )";  
      $resultDLT = requete_SQL($queryDLT);
      if (!$resultDLT) echo "$queryDLT............. Impossible d'ajouter<br>";
 
Sauf que mon "2éme fichier" est un .csv ce qui rend ma requête impossible, mais j'ai pu trouver un truc, c'est de lire ma 1ere colonne (key) du .csv et de la stocker dans un tableau puis l'utiliser dans ma reqête, mais je sais utiliser le fgets que pour les lignes, donc si tu pouvais m'aider..
 
$fic = fopen(".csv","r" );
$data = fgets(   );
fclose($fic);
       

Reply

Marsh Posté le 20-07-2007 à 18:34:20    

J'ai peut-être mal compris. J'ai compris que tu veux remplir une table avec un fichier csv et que ta table ne dont pas contenir d'enregistrement qui n'est pas présent dans ton csv.
 
Donc, si c'est ça, le plus simple est de vider la table et de charger le csv.

Reply

Marsh Posté le 24-07-2007 à 19:51:37    

dsl pour ma réponse tardive.
Finalement c'est ce que j'ai fais..
c'était tout simple :s

Reply

Marsh Posté le 24-07-2007 à 20:48:15    

bon ben si ça te va, tant mieux :)...

Reply

Sujets relatifs:

Leave a Replay

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