Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème import CSV Mysql [ Divers / Divers ] (shadowfox666)

mardi 27 mai 2008 à 17:58:23 | Problème import CSV Mysql

shadowfox666

Bonjour,

Je dois réaliser un import de fichier de fichier CSV assez important (700 000 lignes)
Et je suis soumis à une contrainte assez ennuyeuse.
Le client veut que le séparateur dans le fichier soit "#!", seulement lors de l'utilisation de la fonction fgetcsv(), on ne peut mettre qu'un seul caractère en séparateur.

J'ai pensé utiliser "#" en séparateur et utiliser la fonction str_replace pour remplacer le "!" du "#!" par un autre caractère et éviter des changements de collones non prévus.

Cependant avec plus de 700 000 lignes à réger, je crains que le serveur explose en devant remplacer tant de caractères!
Quelqu'un aurait-il une alternative à me proposer? Une piste ? Quelque chose, un truc

Voici mon code pour l'instant : (il ne gère que la lecture du fichier, je m'occuperai du SQL une fois que je n'aurais plus ce problème de séparateur).

<?php
$row = 1;
$handle =fopen("test.csv", "r");

while (($data = fgetcsv($handle, 1000, "#")) !==FALSE) {
    $num = count($data);
    $row++;
   
    for ($c=0; $c < $num; $c++) {
    $data[$c] = str_replace("!", "AAA", $data[$c]);
       echo $data[$c] . "<br />\n";       
       
    }
}

fclose($handle);
?>

Merci pour vos réponse !

NIRVANA is never enough ! It' in the spirit !

mardi 27 mai 2008 à 18:45:53 | Re : Problème import CSV Mysql

nicomilville

Membre Club
Réponse acceptée !
Salut,

pourquoi c'est obligé que ton séparateur sois # ?
tu peus peut être utiliser la fonction explode() :

explode("séparateur", "tableau");

a++

Si la réponse vous convient, pensez : Réponse accepté !


mardi 27 mai 2008 à 18:57:24 | Re : Problème import CSV Mysql

shadowfox666

Bonjour,

C'est à la demande du client comme, ces champs vont être écupérés à partir d'annonces déposées sur un site, il se peut très bien qu'un utilisateur mettent des ";" dans son annonce et ça sèmerai le désordre dans le tableau donc c'est pour cela qe l'on met des caractères eu utilisés comme le # même si à la base c'était #! qui avait été choisi.

Elle fonctionne comment cette fonction explode? Elle supporte les sépérateurs de plus de 1 caractère?

Merci pour vos réponses :)

NIRVANA is never enough ! It' in the spirit !

mardi 27 mai 2008 à 19:16:22 | Re : Problème import CSV Mysql

nicomilville

Membre Club
Réponse acceptée !
Re,

la fonction explode supporte les sépparateur de plus d'un caractère !

www.php.net/explode

a++

Si la réponse vous convient, pensez : Réponse accepté !


mercredi 28 mai 2008 à 11:13:09 | Re : Problème import CSV Mysql

shadowfox666

Bonjour,

J'ai essayé la fonction explode mais pour l'instant je n'arrive pas à afficher ce que je souhaite.

<?php
$row =1;
$nb_ligne =0;
 $nb_champs =0;
 
 $fichier_csv = @fopen("niak2.csv", "r" );
 if($fichier_csv)
 {
  while (!feof($fichier_csv))
  {
 
   $curent_ligne =fgets($fichier_csv, 1000);
   $champs =explode("#!", $curent_ligne);
   $nb_ligne++;
  
   $num = count($champs);
   $row++;
   
        for ($c=0; $c < $num; $c++)
        {
   
               echo $champs[$c] . "<br />\n";       
       
        }
  
   }
}
?>

Lorsque je lance le script il m'affiche mes lignes avec !# alors qu'il devrait les considérer comme un séparateur.

Merci pour vos réponses

NIRVANA is never enough ! It' in the spirit !

mercredi 28 mai 2008 à 11:15:26 | Re : Problème import CSV Mysql

shadowfox666

Re,

Honte à moi je me suis trompé j'avais inversé les deux caractères pour le séparateur...
J'avais #! au lieu de !#.
Maintenant ça marche très bien!

Merci encore pour votre aide !

NIRVANA is never enough ! It' in the spirit !

mercredi 28 mai 2008 à 17:10:21 | Re : Problème import CSV Mysql

nicomilville

Membre Club
Ok,

content pour toi !!

De rien !

a++

Si la réponse vous convient, pensez : Réponse accepté !




Cette discussion est classé dans : fichier, problème, data, csv, séparateur


Répondre à ce message

Sujets en rapport avec ce message

problème avec fichier CSV [ par xris ] Bonjour, Je sui perdu : j'utilise la fonction fgetcsv de la façon suivante : $row = 1; $handle = fopen("data.csv", "rb"); while (($data = fgetcsv($ Fichier texte [ par rochametallica ] Salut tout le monde, je voudrais avoir votre aide pour résoudre un problème, alors je voudrais un code en PHP qui me lis des valeurs d'un fichier text csv vers base de donnée [ par fraisa1985 ] Salut a tous, je veux faire une actualisation de ma base de donnée à partir d'une fichier csv. Ma probléme que le fichier csv contient des données pl Problème de header [ par mike1310 ] Bonjour à tous,je suis en train de me battre avec IE (pour ne pas changer) sur le téléchargement d'un fichier csv.J'explique le truc :J'ai un site qui Problème d'ajout de guillemets dans fichier csv avec la fonction fputcsv [ par TOULOUSELAUTREC69 ] Bonjour,Je génère un fichier csv sur mon site web qui contient la liste de mes clients du jour.Ensuite j'importe ce fichier dans mon logiciel de factu problème Array , Checkbox et JPGraph [ par okhlaoma ] Bonjour, voilà mon problème :A partir d'une requete sur une base de donnée, j'ai un tableau html avec à chaque ligne une case à cocher . Cette case a LOAD DATA INFILE [ par Ninie972 ] bonjour, J'aimerais savoir si c'est possible de faire un load data infile (importation de fichier) en spécifiant à la fois le nom des colonnes du fich Import fichier csv dans une BBD (mysql) [ par onylink ] Bonjour,Je cherche à importer un fichier de type csv pour ensuite rentrer les valeurs dans la bdd.        <input type="file" name="fichie ecriture de XML problème d'encodage [ par lounkokobi270987 ] Bonjour a tous J'ai un petit probleme qui me donne des gros mot de tête:J'aimerai modifier un fichier XML en PHP et le réecrire aprés dans mon fichier Problème d'envoie de mail avec mail() [ par Morgz ] Bonjour à tous! Voici mon problème, j'utilise wampserver en local et j'essaye de mettre en place un fichier PHP pour envoyer un simple mail. Malheu


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.