charger un fichier csv?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : charger un fichier csv?

Re: charger un fichier csv?

par hiker » 29 oct. 2010, 12:00

J'ai pas toujours de solution quelqu'un voit mon erreur?

Re: charger un fichier csv?

par hiker » 29 oct. 2010, 09:27

$nom correspond au nom du fichier que est upload
Même avec le local c'est bizard je crois que c'est un probléme de syntaxe :shock:

Re: charger un fichier csv?

par stealth35 » 28 oct. 2010, 20:32

$nom ca correspond a quoi ? il faut aussi utilise LOCAL

Re: charger un fichier csv?

par hiker » 28 oct. 2010, 20:03

Finalement aprés avoir utilissé la fonction LOAD DATA INFILE je parvient toujours pas voici mon code

Code : Tout sélectionner

ini_set('display_errors','1'); //Inclusion de la classe mère include ("SGBD.class.php"); /* Initialisation de la variable du SGBD correspondant */ $SQL = "MySQL"; // Inclusion de la classe fille du SGBD correspondant include ($SQL.".SGBD.class.php"); /* Création d'un nouvel objet de la classe fille + lancement du constructeur */ $database = new $SQL('root', '', 'localhost', 'dbprojet'); // Connection à la base de données $database->connect(); if( isset($_FILES['fichier'])) { $nom=$_FILES['fichier']['name']; $extensions_valides= array('xlsx' , 'txt' , 'xls','csv' ); $extension_upload = strtolower( substr( strrchr($_FILES['fichier']['name'], '.') ,1) ); if( in_array( $extension_upload, $extensions_valides )) { echo 'extension valide'; $database->requete("LOAD DATA INFILE '$nom' INTO TABLE WHITE_LISTE FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES STARTING BY '' TERMINATED BY '\n' ('', numero, $_POST['SERVICES'])"); }else { echo 'extension non valide'; } } ?>

Re: charger un fichier csv?

par hiker » 28 oct. 2010, 17:05

Finalement je comprend plus rien à ce que vous dites :oops:

Re: charger un fichier csv?

par stealth35 » 28 oct. 2010, 16:40

ouai c'est vrai a chaque fois je zap #-o

sinon pourquoi utilise tu DOMDocument c'est pas un fichier CSV que t'as ?

Re: charger un fichier csv?

par AB » 28 oct. 2010, 14:26

Auparavant je vérifierais le point suivant
"Pour utiliser la commande LOAD DATA INFILE sur des fichiers du serveur, vous devez avoir le droit de FILE sur le serveur. See Section 5.5.3, « Droits fournis par MySQL »."
Et sinon tu pourras toujours te rediriger vers fgetcsv

Re: charger un fichier csv?

par stealth35 » 28 oct. 2010, 13:47

Effectivement j'avais regardé ce cours mais concrètement j'ai pas eu d'idée par rapport à son utilisation dans mon code php.Je souhaite faire un formulaire pour rechercher le fichier et le charger dans la base de données
tu upload ton fichier, tu fait un requete SQL avec le INFILE LOCAL qui pointe vers le fichier temporaire, et voila c'est finie :wink:

Re: charger un fichier csv?

par hiker » 28 oct. 2010, 12:49

Effectivement j'avais regardé ce cours mais concrètement j'ai pas eu d'idée par rapport à son utilisation dans mon code php.Je souhaite faire un formulaire pour rechercher le fichier et le charger dans la base de données

Re: charger un fichier csv?

par stealth35 » 28 oct. 2010, 12:45

pour chaeger un fichier CSV dans un base c'est avec LOAD DATA INFILE
http://dev.mysql.com/doc/refman/5.0/fr/load-data.html

charger un fichier csv?

par hiker » 28 oct. 2010, 12:42

Bonjour!
Je viens à vous pour vous soumettre mon problème.
En effet je cherche à charger un fichier CSV dans ma base de données à travers le code suivant mais ça fonctionne pas

Code : Tout sélectionner

<form action= "<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="application/x-www-form-urlencoded"> <fieldset style="width:600px"> <legend><b><h6>Précharger white liste</h6></b></legend> <table width="80%" class="centre_tab2"> <tr><td align="right"><label for="services">Liste des services:</label></td> <td><select name="SERVICES" id="services"> <option value="club20">CLUB20</option> <option value="yabusiness">YA BUSINESS</option> <option value="internetmobil">INTERNET MOBIL</option> <option value="familleami">FAMILLE AMIS</option> <option value="nexs">NEWS</option> <option value="pharmacies">PHARMACIES</option> </select></td></tr> <tr><td align="right">Nom du Fichier</td> <td><input type="file" name="file" /></td> <td><input name="submit" type="submit" value="Charger" /></td></tr> </table> </fieldset> <?php $data = array(); function charge_numero($first) { global $data; $data []= array( 'first' => $first); //include ("connexion_bd.php"); // if ($_SESSION['login']!=NULL){ ini_set('display_errors','1'); //Inclusion de la classe mère include ("SGBD.class.php"); /* Initialisation de la variable du SGBD correspondant */ $SQL = "MySQL"; // Inclusion de la classe fille du SGBD correspondant include ($SQL.".SGBD.class.php"); /* Création d'un nouvel objet de la classe fille + lancement du constructeur */ $database = new $SQL('root', '', 'localhost', 'dbprojet'); // Connection à la base de données $database->connect(); $database->requete("INSERT INTO WHITE_LISTE VALUES ('', $first , 'zszszzsx')"); } $fichier=isset($_FILES["file"]["tmp_name"]); if ( $fichier ) { $dom = DOMDocument::load( $_FILES['file']['tmp_name'] ); $rows = $dom->getElementsByTagName( 'Row' ); $first_row = true; foreach ($rows as $row) { if (!$first_row ) { $first = ""; $index = 1; $cells = $row->getElementsByTagName( 'Cell' ); foreach( $cells as $cell ) { $ind = $cell->getAttribute( 'Index' ); if ( $ind != null ) $index = $ind; if ( $index == 1 ) $first = $cell->nodeValue; $index += 1; } charge_numero($first); } $first_row = false; } echo 'zzzzzzzzzzzzzzzzzzzzzzzz'; } ?> </form>
Voici le code sql de ma table
/*==============================================================*/
/* Table : WHITE_LISTE                                          */
/*==============================================================*/
create table WHITE_LISTE
(
   id_white_liste       int not null,
   numero               int,
   service_type         varchar(254),
   primary key (id_white_liste)
);