A voir également:
- [PHP] inserer des donnees dans une table
- Table ascii - Guide
- Table des matières word - Guide
- Insérer une vidéo dans powerpoint - Guide
- Insérer signature word - Guide
- Insérer liste déroulante excel - Guide
6 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
26 juin 2007 à 17:03
26 juin 2007 à 17:03
Bonjour,
https://www.php.net/manual/fr/function.fgets.php
A priori, je te conseillerai le code suivant :
$fichier = fopen("c:\fichier.txt");
while (!feof($fichier))
{
$uneLigne = fgets($fichier);
$tableauValeurs = explode('@', $uneLigne);
$sql="INSERT INTO table VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."');
mysql_query($sql);
}
fclose($handle);
Somme toute, c'est très proche de ce que tu imaginais :)
Voilà voilà !
Xavier
https://www.php.net/manual/fr/function.fgets.php
A priori, je te conseillerai le code suivant :
$fichier = fopen("c:\fichier.txt");
while (!feof($fichier))
{
$uneLigne = fgets($fichier);
$tableauValeurs = explode('@', $uneLigne);
$sql="INSERT INTO table VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."');
mysql_query($sql);
}
fclose($handle);
Somme toute, c'est très proche de ce que tu imaginais :)
Voilà voilà !
Xavier
Salut Xavier merci beaucoup pour ta réponse.
Je viens de la tester et y'a un pb.
Normalement ma table (apres les insert) devrait contenir 10 000 enregistrements
Or avec ce code j'en ai 400 000 lol, et en plus tous les champs sont vides !
Y'a un pépin qq part lol
tu sais d'ou ca pourait venir ?
Encore merci :p
Je viens de la tester et y'a un pb.
Normalement ma table (apres les insert) devrait contenir 10 000 enregistrements
Or avec ce code j'en ai 400 000 lol, et en plus tous les champs sont vides !
Y'a un pépin qq part lol
tu sais d'ou ca pourait venir ?
Encore merci :p
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
26 juin 2007 à 17:28
26 juin 2007 à 17:28
Ca peut venir de ta version de php.
Si tes lignes ne sont pas trop longues (genre pas plus de 1000 caractères par ligne...), essaie de remplacer fgets($fichier) par fgets($fichier, 1024)
Si tes lignes ne sont pas trop longues (genre pas plus de 1000 caractères par ligne...), essaie de remplacer fgets($fichier) par fgets($fichier, 1024)
J'ai essayé mais ca ne change rien.
J'ai essayé aussi d'ouvrir un autre fichier texte, qui fait que 4 lignes, et ca me fait la meme chose :
ca m'insert 400000 enregistrements avec tous les champs vides...
mon code :
$fichier = fopen("textes/t.txt");
while (!feof($fichier))
{
$uneLigne = fgets($fichier, 1024);
$tableauValeurs = explode('@', $uneLigne);
$sql="INSERT INTO test VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."', '".$tableauValeurs[4]."', '".$tableauValeurs[5]."', '".$tableauValeurs[6]."')";
mysql_query($sql);
}
fclose($handle);
mon fichier t.txt :
ANC00001@D00001@xxxxxxxx@594 AV PIERRE & MARIE CURIE@ZI@06700@SAINT LAURENT-DU-VAR@
ANC00002@D00002@xxxxxxxxxx@594 AV PIERRE & MARIE CURIE@@06700@SAINT LAURENT-DU VAR@
PAL00003@D00003@xxxxxxxx@VIA BELLE MONACHE@N 3@28044@VERBANIA@
FAB00004@D00004@xxxxxxxxxx@118 AVENUE DE LA CALIFORNIE@RES LES MIMOSAS@06200@NICE@
ANC00005@D00005@xxxx@594 AV PIERRE & MARIE CURIE@ZI SECTEUR B@06700@SAINT-LAURENT DU VAR@
Autre chose, je ne sais pas si c'est normal mais la variable $handle n'est initialisé nulle part.
Merci encore :D
J'ai essayé aussi d'ouvrir un autre fichier texte, qui fait que 4 lignes, et ca me fait la meme chose :
ca m'insert 400000 enregistrements avec tous les champs vides...
mon code :
$fichier = fopen("textes/t.txt");
while (!feof($fichier))
{
$uneLigne = fgets($fichier, 1024);
$tableauValeurs = explode('@', $uneLigne);
$sql="INSERT INTO test VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."', '".$tableauValeurs[4]."', '".$tableauValeurs[5]."', '".$tableauValeurs[6]."')";
mysql_query($sql);
}
fclose($handle);
mon fichier t.txt :
ANC00001@D00001@xxxxxxxx@594 AV PIERRE & MARIE CURIE@ZI@06700@SAINT LAURENT-DU-VAR@
ANC00002@D00002@xxxxxxxxxx@594 AV PIERRE & MARIE CURIE@@06700@SAINT LAURENT-DU VAR@
PAL00003@D00003@xxxxxxxx@VIA BELLE MONACHE@N 3@28044@VERBANIA@
FAB00004@D00004@xxxxxxxxxx@118 AVENUE DE LA CALIFORNIE@RES LES MIMOSAS@06200@NICE@
ANC00005@D00005@xxxx@594 AV PIERRE & MARIE CURIE@ZI SECTEUR B@06700@SAINT-LAURENT DU VAR@
Autre chose, je ne sais pas si c'est normal mais la variable $handle n'est initialisé nulle part.
Merci encore :D
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re.
C'est bon CA MARCHE !!!!!
MERCI MILLE FOIS Xav !!
en fait le pb venait bien de $handle, fallait juste mettre $fichier a la place.
thxxxxxxx
[Résolu]
C'est bon CA MARCHE !!!!!
MERCI MILLE FOIS Xav !!
en fait le pb venait bien de $handle, fallait juste mettre $fichier a la place.
thxxxxxxx
[Résolu]
essayes:
$tableau_fich=file("c:\fichier.txt"); // lit le fichier et le met dans un array
for($i=0; $i< sizeof($tableau_fich); $i++){
$tableauValeurs=explode($tableau_fich[$i]);
$sql="INSERT INTO test VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."', '".$tableauValeurs[4]."', '".$tableauValeurs[5]."', '".$tableauValeurs[6]."')";
mysql_query($sql);
}
$tableau_fich=file("c:\fichier.txt"); // lit le fichier et le met dans un array
for($i=0; $i< sizeof($tableau_fich); $i++){
$tableauValeurs=explode($tableau_fich[$i]);
$sql="INSERT INTO test VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."', '".$tableauValeurs[4]."', '".$tableauValeurs[5]."', '".$tableauValeurs[6]."')";
mysql_query($sql);
}