Fonction fgetcsv() et ajout base de donnée

Fermé
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 - Modifié par audi68 le 19/06/2011 à 11:18
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 - 20 juin 2011 à 20:56
Bonjour a tous,
Je souhaiterais importer un fixhier txt dans ma base de donné tous les soir a 24h

pour l instant j arrive a lire le contenu du fichier mais je bloque sur l import dans ma base voici mon code

<?php
//source fichier
$content=file_get_contents('mon fichier.txt','r');

//On sépare par |
$content=explode("|", $content);

//On sépare chaque ligne par colonne
for($i=0;$i<sizeof($content);$i++)
{
$content[$i] = explode("\t", $content[$i]);
}
//resultat
print_r($content);
?>

merci de votre aide

9 réponses

Utilisateur anonyme
17 juin 2011 à 21:39
salut,

regarde si ton hebergeur te permet de faire des Cron tasks, si c'est le cas , il te reste plus qu'a le programmer pour 24 (ce qui est chose facile a priori) et qu'il ouvre un fichier php qui , toutes les 24 heures , ira faire des mises a jours...
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
17 juin 2011 à 21:48
merci de ta reponse
oui je veux je suis heberger chez ovh il y a planificateur de tache
0
Utilisateur anonyme
17 juin 2011 à 22:00
bon bein .. probleme resolu alors ;)
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
17 juin 2011 à 22:13
non pas tous a fait je veux inserer mes donner du fichier txt dans ma base
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
la structure grosso modo c'est ca :
<?  
//avant toute ligne de code  
$connect=mysql_connect("host","user","pass");  
$bdd=mysql_select_db("nom bdd",$connect);  

mysql_query("INSERT INTO ta_table (champ1, champ2, champ3) VALUES ('$content[$i]', '$content[$i+1]', '$content[$i+2]')");     // ici tout depends ce que tu veux faire :p  
?>  
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
17 juin 2011 à 22:59
le probleme est que je ne sais pas recuprer mon fichier txt

exemple de fichier txt

champ1|champ2|champ3
valeur1|valeur2|valeur3
12|23|34

ma 1er ligne correspond a la valeur des champs
ma 2eme et suivante au donné a inserer

tu comprends mieu?
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
18 juin 2011 à 14:02
personne?
0
Meoran Messages postés 1562 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 8 avril 2015 203
Modifié par Meoran le 18/06/2011 à 15:03
Salut,

tu as surement tes raisons mais pourquoi ne pas mettre directement les données dans la bd (et faire éventuellement dans l'autre sens c'est à dire bd vers fichier texte si tu en as vraiment besoin...) ?

Ce serait beaucoup plus simple !
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
Modifié par audi68 le 18/06/2011 à 15:04
non ca na vas pas
Je recois tous les jours un fichier txt sur mon serveur avec toutes les donnees pour mon site

Donc je dois lire ce fichier txt et l inserer dans ma base

Merci de ton aide
0
Meoran Messages postés 1562 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 8 avril 2015 203
Modifié par Meoran le 18/06/2011 à 15:32
"Je recois tous les jours un fichier txt sur mon serveur avec toutes les donnees pour mon site "

Qui te l'envoie ? Qui as déterminé la structure du fichier texte ?

Parce que là l'agencement du fichier est carrément foireux :/

Il faudrait au moins faire :

champ1 | valeur1
champ2 | valeur2
champ3 | valeur3
etc.

La manière actuelle, c'est carrément plus que chiant !

L'idéal étant un fichier .csv (toujours dans le cas où l'insertion se fait via fichier. L'idéal de l'idéal étant de ne pas faire une insertion par fichier :p)
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
18 juin 2011 à 15:23
c est automatique on a rien decider il m a envoier ce fichier et il l envoi a d autre

actuellement je converti se fichier en csv et je l importe mais ca prend trop de temps et si je ne le fait pas un jour et qu il y a des modifs se n est pas bon

oui je pense que le mieu serai en csv
0
Meoran Messages postés 1562 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 8 avril 2015 203
Modifié par Meoran le 18/06/2011 à 15:31
Ben faudrait revoir ça avec ce "il" (que tu veux pas dire qui c'est mais c'est pas grave ^^), voir si y a pas une autre méthode possible...

Parce que sincèrement, la manière que tu utilises actuellement est à mon avis la meilleure en l'état :/ C'est nul de faire un fichier de la manière actuelle !!
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
18 juin 2011 à 15:44
j ai reussi a separer mes ligne avec ceci

<?php
$row = 1;
if (($handle = fopen("monfichier.txt", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, "|")) !== FALSE) {
$num = count($data);
echo "<p> $num champs à la ligne $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>

j obitns ceci

id
ref
marque

38135
0
AC

38535
243
CITROEN

35774
227
TOYOTA

maintenat il ne me le reste plus qu a linsere dans la base...........
0
audi68 Messages postés 571 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 5 août 2015 9
20 juin 2011 à 20:56
personne?
0