cs_bomberman17
Messages postés4Date d'inscriptionsamedi 20 novembre 2004StatutMembreDernière intervention20 janvier 2005
-
19 janv. 2005 à 17:08
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 2007
-
20 janv. 2005 à 15:16
URGENT!!
Salut tous le monde!
J'ai un fichier texte avec un certain nombres d'informations séparées
par une virgule.Les informations correspondent a des champs d'un base
de données.J'aurai besoin de créer un fichier en php qui me permettrai
de tranferer les données du fichier texte vers une base de données
mySql et je ne sais pa du tout par où commencez,en plus,je suis assez
débutant en php :( .Si quelqu'un a une idée,n'hésitez pas a me la faire
parvenir rapidement.Merci d'avance pour l'aide que vous pourrez
m'apportez.a+
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 19 janv. 2005 à 17:40
Tu peux utiliser la fonction explode pour séparer les lignes et en suite les colonnes de ton fichier texte. Pour ajouter dans ta base, utilises mysql_query avec une requête "INSERT..."
ça donne un truc du genre :
$ficTxt="chemin de ton fichier texte";
$table="nom de la table où insérer les données";
if (file_exists($ficTxt))
{
$idFic=fopen($ficTxt,"rb");
$contenu=fread($idFic, filesize($ficTxt));
fclose($idFic);
$Tcontenu=explode("\n",$contenu);
foreach($Tcontenu as $numL=>$ligne)
{
$Tligne=explode(";",$ligne);
$req ="INSERT INTO $table VALUES (";
foreach($Tligne as $numCol=>$val)
{ $req.="'$val',"; }
mysql_query(substr($req,0,-1).")");
}
}
cs_bomberman17
Messages postés4Date d'inscriptionsamedi 20 novembre 2004StatutMembreDernière intervention20 janvier 2005 20 janv. 2005 à 12:34
j'ai essayé avec ton code mais apparament il y a vai un truc qui ne
passait et faut dire que j'ai du mal aussi lol.Donc j'ai opter pour la
fonction fgetcsv() voilà mon script.Par contre j'ai pa encore géré
l'insertion.Merci pour ton aide.
<?
//je récupère le nom du fichier saisie dans un champs
cs_bomberman17
Messages postés4Date d'inscriptionsamedi 20 novembre 2004StatutMembreDernière intervention20 janvier 2005 20 janv. 2005 à 14:32
arf,g une erreur.Une fois que j'éxécute mon code et que j'ai affiché le
résultat dans une page html,il m'affiche un message d'erreur en fin de
page==>Fatal error: Maximum execution time of 30 seconds
exceeded in c:\program files\easyphp\www\diago
agenda\test_transfert.php on line 22.
Quelqu'un aurati-il une idée sur l'objet de l'erreur.merci pour votre aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 20 janv. 2005 à 15:16
Sur le fond :
J'ai essayé ton code avec un fichier bien formé, il n'y a pas eu de problème. L'erreur est peut-être plus loin dans ton code. Tu peux essayer de mettre un exit; juste après ton fclose($fp); pour voir si l'erreur apparait tjs.
Sur la forme :
C'est dommage, en recopiant le code à partir du manuel php, tu as glissé quelques erreurs :
- il faut utiliser "<?php" plutôt que "<?"
- il faut utiliser "
" plutôt que"
"
- l'utilisation de "!==FALSE" n'est pas inutile, c'est pour continuer le parcours même si une ligne est vide
- toutes les balises ouvertes doivent être refermées => il faut laisser la balise "
"
- pour plus de cohérence et de lisibilité dans ton code, essaye d'utiliser soit print("texte"); soit echo "texte"; mais évite, tant que faire ce peut, d'employer les 2