Probleme d'ajout d'un fichier csv dans la base de donnée

Résolu/Fermé
MaherMah - 12 mai 2014 à 23:15
 MaherMah - 13 mai 2014 à 15:17
Bonjour,

e vous expose mon problème.
J'ai une table à mettre à jour via un fichier fich.csv


voici mon code php pour importer le fichier csv :
<?php
function csv_to_array($filename, $delimiter)
{
if(!file_exists($filename) || !is_readable($filename))
return FALSE;
$header = NULL;
$data = array();
if (($handle = fopen($filename, 'r')) !== FALSE)
{
while (($row = fgetcsv($handle, 20000, $delimiter)) !== FALSE)
{
if(!$header) $header = $row; else $data[] = array_combine($header, $row);
}
fclose($handle);
}
return $data;
}
function to ($filename)
{
$data=csv_to_array($filename,';');
$i=0;
mysql_connect('127.0.0.1','root','');
mysql_select_db('mobicrew');
{
$req="insert into program values('".$data[$i]['PROGRAM_CODE']."','".$data[$i]['MAT']."','".$data[$i]['CRE_MAT']."','".$data[$i]['FLIGHT8_NO']."','".$data[$i]['DEP']."','".$data[$i]['ARR']."','".$data[$i]['DATE_DEP']."','".$data[$i]['HEURE_DEP']."','".$data[$i]['HEURE_ARR']."')";
mysql_query($req); $i+=1;
}
mysql_close();
}

if ($_FILES["file"]["error"] > 0) {
echo "Erreur L'ors du chargement du Fichier : " . $_FILES["file"]["error"] . "<br>";
} else {

if (file_exists("/" . $_FILES["file"]["name"])) {
unlink('fich.csv');
} else {
move_uploaded_file($_FILES["file"]["tmp_name"],
"" . $_FILES["file"]["name"]);
}

}
to ($_FILES["file"]["name"]);

header("location:AjouterProg.php");

?>
voici mon index.php
<form action="fonction ajout csv.php" method="post" enctype="multipart/form-data">

<label for="file"><font color="#FFFFFF">Sélectionner le Fichier:</font></label>

<input type="file" name="file" id="file" data-mini="true">

<input type="submit" name="submit" value="Importer" class="button" data-icon="check" data-iconpos="left" data-mini="true" data-inline="true">

</form>

et voici une ligne du fichier csv :

1;8980927;3155;282;TUN;NCE;2014-05-23;1215;1415

voici ma table program :
PROGRAM_CODE int(11)
MAT int(11)
CRE_MAT int(11)
FLIGHT8_NO int(11)
DEP varchar(3)
ARR varchar(3)
DATE_DEP date
HEURE_DEP time
HEURE_ARR time



le probleme c'est l'orsque j'importe le ficher je trouve que des 0 dans ma base de donnée =/
A voir également:

6 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
Modifié par Nhay le 13/05/2014 à 12:50
Bonjour,
Déjà, tu doit avoir un problème à ce niveau là
mysql_select_db('mobicrew'); 
{ 

Tu a dû oublié ta boucle.

Mais honnêtement revoit l'indentation de des fichiers, tu t'y retrouvera largement mieux (et nous aussi) pour débugger.
Rien qu'en faisant l'indentation tu aurai déjà vu un problème à cette ligne là.
0
Bonjour,

Merci pour votre réponse j'ai r'ajouter ma boucle mais la y'a rien qui change au niveau de la base de donnée ni des 0 ni rien

voici la boucle :
mysql_select_db('mobicrew');
while($data[$i]['1'] != NULL)
{
$req="insert into program values('".$data[$i]['PROGRAM_CODE']."','".$data[$i]['MAT']."','".$data[$i]['CRE_MAT']."','".$data[$i]['FLIGHT8_NO']."','".$data[$i]['DEP']."','".$data[$i]['ARR']."','".$data[$i]['DATE_DEP']."','".$data[$i]['HEURE_DEP']."','".$data[$i]['HEURE_ARR']."')";
mysql_query($req); $i+=1;
}
mysql_close();
}
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
13 mai 2014 à 13:13
et $data[$i]['1'] existe bien ?
Sinon, fait un print_r($data) , tu verra bien ce qu'il y a dedans, ça te permettra de vérifier si tu a les bons nom pour les clé du tableau.
0
lorsque je met print_r($data) ya rien qui change
0

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

Posez votre question
j'ai essayé un nouveau code mais j'ai eu deux erreur voici le code


<?php
ini_set('dispaly',1);
error_reporting(E_ALL);
$db_host = '127.0.0.1';
$db_user = 'root';
$db_pwd = '';

$database = 'mobicrew';
$table = 'program';

if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");

if (!mysql_select_db($database))
die("Can't select database");


if(isset($_POST['submit']))
{
$fname = $FILES['sel_file']['name'];
echo 'upload file name: '.$fname.'';
$chk_ext = explode(".",$fname);

if(strtolwer(end($chk_ext)) == "csv")
{

$filename = $_FILES['sel_file']['tmp_name'];
$handle = fopen($filename, "r");

while (($data = fgetcsv($handle,1000, ","))!== FALSE)
{
$sql = "INSERT into program (PROG_CODE,MAT,CRE_MAT,FLIGHT8_NO,DEP,ARR,HEURE_DEP,HEURE_ARR) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]')";
mysql_query($sql) or die(maysql_error());
}

fclose($handle);
echo "Successfully Imported";

}
else
{
echo "Invalid File";
}
}

?>
<h1>Import CSV file</h1>
<form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post' enctype="multipart/form-data">
Import File : <input type='file' name='sel_file' size='20'>
<input type='submit' name='submit' value='submit'>
</form>




voici le code erreur :

Notice: Undefined variable: FILES in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\Server\Admin\importcsv.php on line 20
upload file name:
Fatal error: Call to undefined function strtolwer() in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\Server\Admin\importcsv.php on line 24



aidez moi svp
0
Résolu voici le code si quelque le need =) merci NHAY
<?php
ini_set('dispaly',1);
error_reporting(E_ALL);
$db_host = '127.0.0.1';
$db_user = 'root';
$db_pwd = '';

$database = 'mobicrew';
$table = 'program';

if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");

if (!mysql_select_db($database))
die("Can't select database");
if(isset($_POST['submit']))
{
$fname = $_FILES['sel_file']['name'];
echo 'upload file name: '.$fname.'';
$chk_ext = explode(".",$fname);

if(strtolower($chk_ext[1]) == "csv")
{

$filename = $_FILES['sel_file']['tmp_name'];
$handle = fopen($filename, "r");

while (($data = fgetcsv($handle,1000, ";"))!== FALSE)
{
$sql = "INSERT into program (PROGRAM_CODE,MAT,CRE_MAT,FLIGHT8_NO,DEP,ARR,HEURE_DEP,HEURE_ARR) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]')";
mysql_query($sql) or die(mysql_error());

}

fclose($handle);
echo "Successfully Imported";

}
else
{
echo "Invalid File";
}
}

?>

<form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post' enctype="multipart/form-data">
<input type='file' name='sel_file' size='20'>
<input type='submit' name='submit' value='Importer'>
</form>
0