Version complète: sur le forum Webmaster Hub : Fichier texte avec insertion sql
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
doomer2
Bonjur à tous,

Je possède actuellement un fichier txt avec 3 champs séparés par des |

J'ai donc fait un petit script pour afficher dans un tableau

CODE
$content=file_get_contents('test.txt','r');
$content=explode("\n", $content);
for($i=0;$i<sizeof($content);$i++)
{
           $content[$i] = explode("\t", $content[$i]);
}
print_r($content);


Le problème est que je souhaiterais inséré les champs de chaque ligne dans une table sql.

Comment faire cela ?

Merci à vous
KnockedMaster
Salut doomer2,

Ta connexion est ouverte ?

Tes tables créées et opérationnelles ?

Si c'est le cas, tu peux boucler sur le tableau et insérer la ligne à chaque passage (il y a peut-être plus optimisé mais je ne connais que cette façon de faire) :

CODE
foreach ($content as $ligne)
{
     $enregistrement = mysql_real_escape_string($ligne);

     $sql     = ("INSERT INTO ma_table (nom_champ) VALUES ('$enregistrement')");
     $query = mysql_query($sql);
}


Voili grosso modo ça doit être suffisant ...
Galdon
Voici l'algo :

ouvrir fichier
pour chaque ligne du fichier
explode (pour récupérer la ligne dans un tableau)
insérer les champs dans la base de données
fin pour
fermer fichier

La fonction pour lire une ligne de fichier est fgets(), au premier appel elle lit la première ligne, au second appel elle lit la seconde ligne et ainsi de suite jusqu'à la fin du fichier.

http://www.siteduzero.com/tuto-3-172-1-lir....html#ss_part_3
Phongsaly
A adapter :

CODE
<?php

$content = file_get_contents( 'test.txt', 'r' );
$content = explode( "\n", $content );

foreach( $content as $ligne )
{
$ligne = explode( "|", $ligne );
$sql = 'INSERT INTO table (champ1, champ2, champ3) VALUES (\''.$ligne[0].'\', \''.$ligne[1].'\', \''.$ligne[2].'\');'

mysqli_query( [LIEN_SQL], $sql );

echo( "<br />Executée : ".$sql );
}

?>


Py.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.