1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
<?php
$hostname = "localhost";
$database = "test";
$username = "root";
$password = "";
$connect = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database,$connect);
$var="./donnees.csv";
if (!file_exists($var)){ // le fichier n'existe pas
echo('Fichier introuvable !<br>Importation stoppée.');
}
else
{
$fp = fopen($var, "r");
$i=0;
while (($liste = fgetcsv($fp,4096,";"))!==FALSE)
{
$lliste=array();
if($i>1)//Sert à ne pas prendre les deux première ligne de ton fichier qui sont les noms des colonnes
{
foreach($liste as $file)//instancie la tableau $lliste contenant les élément de la ligne
$lliste[]=$file;
//certaines lignes du fichier csv ont une mauvaise syntaxe : une ligne tq : "j'aime le php" ne va pas s'insérer à cause du guillemet simple de "j'aime", sql le prend comme une séparateur de valeur
//le but ici est de les reconstituer avec la bonne syntaxe
for($j=0;$j<count($lliste);$j++)
{
$tab=explode("'",$lliste[$j]);
if(count($tab)>1)//cibler uniquement les lignes contenant des guillemets simples : '
{
$reconstitution="";
for($k=0;$k<count($tab);$k++)
{
if($k!=(count($tab)-1))
{
$reconstitution=$reconstitution.$tab[$k]."\'";//on reconstruit la ligne en insérant un caractère d'échappement : \
//car l'insertion en bd block à cause des guillemets simples contenus dans les lignes
}
else{//ici on cible le dernier morceau de la ligne pour ne pas rajouter un \ à la fin
$reconstitution=$reconstitution.$tab[$k];
}
}
$lliste[$j]=$reconstitution;//on reforme le paramètre d'indice $j avec la bonne syntaxe
}
}
$query = "INSERT INTO etablissement(`id_etablissement`,`VIlle`,`Secteur`,`Etablissement`,`FiliereDeFormation`,`Niveau`,`fiche`,`ID`) VALUES ('".$lliste[0]."','".$lliste[1]."','".$lliste[2]."','".$lliste[3]."','".$lliste[4]."','".$lliste[5]."','".$lliste[6]."','".$lliste[7]."')";
$result= mysql_query($query) or die(mysql_error());
}
$i++;
}
fclose($fp);
echo("importation réussie des élèves");
}
?> |