[Forum] Importer des données texte et excel
bonjour a tous
j'ai un probleme avec mon code
je veux importer des donnes de fichier txt et xls et csv dans une table mysql
mais je n'arrive pas
cette erreur s'affiche : undefined offset 2 in :.... on line 38
................ 3 in
.
.
6 on line 42
j'aimerai savoir est ce ke evec ce code je peux importer des donnees xls?
aidez moi svp. je suis en pfe et je n'ai plus beaucoup de temps
merci
mon code :
Code:
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| <html>
<head>
<style type="text/css">
<!--
.Style1 {
color: #80FFFF;
font-style: italic;
}
.Style2 {color: #000000}
-->
</style>
</head>
<body background="fond.jpg">
<?php
if (isset($_FILES['file']))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file,'r');
$row = 1;
$handle = fopen("$file", "r");
include("config.inc.php");
mysql_connect("$serveur_bdd", "$login_bdd", "$pass_bdd") or die('Erreur de connection à la base de données');
mysql_select_db("$table_bdd") or die('Erreur de connection à la table');
$req="TRUNCATE TABLE `user`";
mysql_query($req);
while (($data = fgetcsv($handle, 4096, ";")) !== FALSE)
{
$n = count($data);
$row++;
for($i=0;$i<$n;$i=$i+7)
{
$id="'".$data[$i]."'";
$nom="'".$data[$i+1]."'";
$prenom="'".$data[$i+2]."'";
$date_naiss ="'".$data[$i+3]."'";
$tel="'".addslashes($data[$i+4])."'";
$etablisse ="'".addslashes($data[$i+5])."'";
$niveau ="'".addslashes($data[$i+6])."'";
}
$reqinsert="INSERT INTO user VALUES(".$id.",".$nom.",".$prenom.",".$date_naiss.",".$tel.",".$etablisse.",".$niveau.");";
// execution de requette insertion
mysql_query($reqinsert);
echo $reqinsert;
echo '<br>';
}
mysql_close();
fclose($handle);
}
else
{
?><form action="upload.php" method="post" enctype="multipart/form-data" name="form1">
<pre class="Style1 Style2" > </pre>
<h1 ><center>Chargement des données :</h1>
<hr width="25%" size="4" color="black">
<br><br>
<hr width="35%" size="2">
<br>
Fichier : <input type="file" name="file">
<input type="submit" name="Submit" value="valider">
</form>
<?php
}
?>
<br><br>
<hr width="35%" size="2">
</body></html> |
importation de fichiers excel dans une table mysql en php
salut ,
j'ai un problème et j'ai essayé un code que j'ai trouvé dans le forum sauf qu' il m'a affiché ce message d'erreur : Call to a member function on a non-object in....line 74
donc cette ligne : $db_s->query($sql);
svp je suis en galère et je n'arrive pas à importer des données dans ma table à partir de fichers excel.
merci pour votre aide.
voici le code :
Code:
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| <h2>Administration des importations des fichiers excel</h2>
<?php
// Inclusion de la classe pour l'exportation excel => CSV
require_once 'include/classe/excel/reader.php';
// Définition des colonnes à prendre en compte pour chacun des fichiers
$Carac_fichier = array( 'inv_utilisateur.xls' => array ('nom_bdd' => 'inv_utilisateur', 'nbr_col' => '8', 'nbr_depart' => 2),
'inv_print.xls' => array ('nom_bdd' => 'inv_print', 'nbr_col' => '6', 'nbr_depart' => 2),
'inv_switch.xls' => array ('nom_bdd' => 'inv_switch', 'nbr_col' => '6', 'nbr_depart' => 2),
'inv_licenece.xls' => array ('nom_bdd' => 'inv_licence', 'nbr_col' => '6', 'nbr_depart' => 2),
'inv_pc.xls' => array ('nom_bdd' => 'inv_pc', 'nbr_col' => '65', 'nbr_depart' => 2)
);
if (!isset($_POST['fichiers']) ) $fichiers[] = "";
else $fichiers[] = $_POST['fichiers'];
if (!isset($_POST['sendadd']) ) $sendadd = "";
else $sendadd = $_POST['sendadd'];
$chemin = 'fichier/excel/'; // Répertoire contenant les fichiers
$sql = ''; // Initialisation de la requête SQL.
?>
<form method="post" action="" enctype="multipart/form-data" />
<strong>Fichiers : </strong> <input type="file" name="fichiers[]" size="70" />
<input type="submit" name="submit" value="Envoyer" /><input type="hidden" name="sendadd" value="ok"><br /><br />
Vous pouvez importer les fichiers
<?php foreach($Carac_fichier as $cle=>$valeur) echo '<strong>' .$cle.'</strong>, '; ?>
</form>
<?php
if ($fichiers != "" && $sendadd == "ok")
{
// Upload du fichier sur le serveur
// ==================================================================================
// Enregistrement des noms de fichiers envoyés et temporaire
$nom_du_fichiers = $_FILES['fichiers']['name'][0];
$nom_du_fichiers_temporaire = $_FILES['fichiers']['tmp_name'][0];
//Now it's OK, upload !
if (@copy($nom_du_fichiers_temporaire, $chemin.$nom_du_fichiers)) // $chemin
{
echo "Upload réussi du fichier : <strong>" .$nom_du_fichiers. "</strong>.<br />";
// Conversion du fichier sur le serveur
// ==================================================================================
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('CP1251');
$data->read($chemin.$nom_du_fichiers);
// Teste de l'existance du fichier dans le tableau $Carac_fichier
if ( isset($Carac_fichier[$nom_du_fichiers]) )
{
echo "<br /><br /><strong>Début de la lecture du fichier excel ligne par ligne ... </strong><br /><br />";
// Enregistrement du nombre de colonne à afficher
$nom_bdd = $Carac_fichier[$nom_du_fichiers]['nom_bdd'];
$nbr_col = $Carac_fichier[$nom_du_fichiers]['nbr_col'];
$nbr_depart = $Carac_fichier[$nom_du_fichiers]['nbr_depart'];
// Parcours du fichier excel
error_reporting(E_ALL ^ E_NOTICE);
for ($i = $nbr_depart; $i <= $data->sheets[0]['numRows']; $i++)
{
$sql = "INSERT INTO `" .$nom_bdd. "` VALUES ( '', ";
for ($j = 1; $j <= $nbr_col; $j++)
{
if ( $j != $nbr_col )
$sql .= "'" .$data->sheets[0]['cells'][$i][$j]. "',";
else
$sql .= "'" .$data->sheets[0]['cells'][$i][$j]. "');"; //echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
}
echo $sql . "<br />";
$db_s->query($sql); // c'est ici l'erreur
}
echo "<br /><strong> ... Fin de la lecture du fichier</strong>";
}
else
$erreur = "Le fichier n'est pas référencé.";
}
else
$erreur = "Echec de l'upload du fichier <strong>!</strong>";
echo '<br /><span class="text_alert">' .$erreur. '</span><br />';
//Si le fichier temporaire n'a pas été effacé par le serveur
if (is_file($nom_du_fichiers_temporaire))
@unlink($nom_du_fichiers_temporaire);
}
?> |