Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2011, 17h21   #1
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
Par défaut importation fichier csv

Bonjour
j'ai un soucis que je n'arrive pas à comprendre, j'ai besoin de vos aides

voilà l'erreur affichée
Notice: Undefined offset: 1 in E:\wamp\www\import\index.php on ligne 96
cette erreur est répétitive pour chacune des colonnes de mon fichier csv ...

voilà 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
 
<?php 
 
if ( isset($_POST['ajouter2'])){
 
 $fichier=$_FILES['userfile']['tmp_name'];
 if ($_FILES['userfile']['size']==0){ // le fichier n'existe pas
       echo('Fichier introuvable !<br>Importation stoppée.');
    }
    else
    {
       $fp = fopen("$fichier", "r");
 
 
 
    while (($liste = fgetcsv($fp,4096,";"))!==FALSE){
 
 
 
 
   $id_etablissement = $liste[0];
    $VIlle = $liste[1];
    $Secteur = $liste[2];
    $Etablissement = $liste[3];
   $FiliereDeFormation = $liste[4];
       $Niveau =  $liste[5];
       $fiche = $liste[6];
	   $id= $liste[7];
 
 
       $sql ="INSERT INTO etablissement ( id_etablissement, Secteur, Etablissement, FiliereDeFormation, Niveau , fiche, ID ) VALUES ('$id_etablissement','$VIlle','$Secteur','$Etablissement', '$FiliereDeFormation','$Niveau ', '$fiche','$id')" ;
       $result= mysql_query($sql);
 
 
	 }
 
 
        fclose($fp);
		echo("importation réussie des élèves");
 
    }
}
?>
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h25   #2
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 412
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 412
Points : 537
Points : 537
Envoyer un message via MSN à amoiraud
Salut,

Ca donne quoi si tu fais un var_dump($liste); ?
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h30   #3
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
quand je clique sur ajouter il m'affiche l'erreur
Citation:
Notice: Undefined offset: 1 in E:\wamp\www\import\index.php on line 96
pour chaque colonne
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h39   #4
Nouveau Membre du Club
 
Homme
Développeur informatique
Inscription : novembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : novembre 2011
Messages : 31
Points : 37
Points : 37
Fais un var_dump($liste) et postes la résultat comme l'a dit amoiraud, ou montres un fichier csv.
10903513 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h47   #5
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
mercii pour vos réponses

voilà le fichier csv et voilà ce qu'il m'affchie quand j'ai mis var_dump($liste);
donnees.csv.xlsx

array(1) { [0]=> string(707) "PK!�WJ�3�[Content_Types].xml ��(��U]O�0}7�?,}5[c �?�D��������ٿ�v��!a�/떥�{�m�*�h s�S�M:,-���,eo��E�V�0RV����?�,`D�5�,���q�2�R`b,h�35��>݌[!�b����pi��c0ؠ�B\�  �EI<|U���j,&��{7!hݯ1��� k�\" }
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h52   #6
Nouveau Membre du Club
 
Homme
Développeur informatique
Inscription : novembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : novembre 2011
Messages : 31
Points : 37
Points : 37
Quand tu enregistres ton fichier excel, en-dessous du champ pour inscrire le nom de ton fichier il y a un menu type, il faut que tu précises que c'est de type csv, car là il le prend comme un fichier .xlsx
10903513 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 17h58   #7
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
oui j'ai enregistrée le fichier sous csv mais il le considère comme fichier vide et m'affiche l'erreur que j'ai écrit dans le code

Fichier introuvable !
Importation stoppée
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h03   #8
Nouveau Membre du Club
 
Homme
Développeur informatique
Inscription : novembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : novembre 2011
Messages : 31
Points : 37
Points : 37
essai avec ce fichier (dans archive parce que j'ai un probleme pour joindre le fichier normal) :
donnees.rar

car en tout cas le fichier que tu m'as envoyé n'est pas un fichier csv, ça reste une feuille Microsoft Office Excel
10903513 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h05   #9
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
la même erreur

Fichier introuvable !
Importation stoppée
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h13   #10
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
j'ai besoinnnn de voos aides heeeeeelp pllz
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h14   #11
Nouveau Membre du Club
 
Homme
Développeur informatique
Inscription : novembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : novembre 2011
Messages : 31
Points : 37
Points : 37
C'est déjà plus la même erreur qu'au début.

Fais un echo sur le fichier qu'il essai d'ouvrir, il doit y avoir un problème de syntaxe.
10903513 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h22   #12
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
oui c'est je crois un problème de syntaxe parce que quand j'essaie d'afficher le nom de fichier il n'affiche rien
il m'affiche juste l'erreur

Fichier introuvable !
Importation stoppée
voilà le code
$fichier=$_FILES['userfile']['tmp_name'];
if ($_FILES['userfile']['size']==0){ // le fichier n'existe pas
echo $fichier;
echo('Fichier introuvable !<br>Importation stoppée.');
}
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h28   #13
Nouveau Membre du Club
 
Homme
Développeur informatique
Inscription : novembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : novembre 2011
Messages : 31
Points : 37
Points : 37
J'ai remixer ton code en enlevant tout ce qui me gênait (mise en base, variable $_FILE que je n'ai pas) et j'ai réussi à faire apparaitre toutes les données du fichiers csv :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
 
$var="./donnees.csv";
 if (!file_exists($var)){ // le fichier n'existe pas
       echo('Fichier introuvable !<br>Importation stoppée.');
    }
    else
    {
       $fp = fopen($var, "r");
 
    while (($liste = fgetcsv($fp,4096,";"))!==FALSE){
		foreach($liste as $file)
			echo "<br>".$file."<br>";
 
	 }
        fclose($fp);
		echo("importation réussie des élèves");
 
    }
 
?>
Avec ce code et le fichier précédent tu peux sortir toutes les valeurs du fichiers csv.
Donc à partir de là fais des echo sur ton code pour vérifier que tes variables ont les bonnes valeurs, en retravaillant un peu tout ça tu vas y arriver. Ton :
Code :
 if ($_FILES['userfile']['size']==0)
ne passe apparemment jamais.
10903513 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h40   #14
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
mercii beaucoup pour votre aide
ici vous avez mis directement le chemin du fichier sans passer par parcourir ??
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h46   #15
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
ouii c 'est bn j'arrive à les affichées je vais tester de les insérer sur la base de données merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii beaaaaaaaaaaaaaucoup
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h58   #16
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
mercii pour vos aides, mais
il m'affiche tjr une erreur quand j'essaie d'insérer les données dans la base de données sachant que id_etablissement auto incrément

Notice: Undefined variable: ID in E:\wamp\www\import\index.php on line 92

voilà mon code

<?php

$var="C:\don\donnees.csv";
if (!file_exists($var)){ // le fichier n'existe pas
echo('Fichier introuvable !<br>Importation stoppée.');
}
else
{
$fp = fopen($var, "r");

while (($liste = fgetcsv($fp,4096,";"))!==FALSE){
foreach($liste as $file)

$id_etablissement = $liste[0];
$VIlle = $liste[1];
$Secteur = $liste[2];
$Etablissement = $liste[3];
$FiliereDeFormation = $liste[4];
$Niveau = $liste[5];
$fiche =$liste[6];
$ID== $liste[7];
$query = "INSERT INTO etablissement ( id_etablissement, Secteur, Etablissement, FiliereDeFormation, Niveau , fiche, ID ) VALUES ('','$VIlle','$Secteur','$Etablissement', '$FiliereDeFormation','$Niveau ', '$fiche','$ID')";

$result= mysql_query($query);
echo "<br>".$file."<br>";



}
fclose($fp);
echo("importation réussie des élèves");

}

?>
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 19h00   #17
Nouveau Membre du Club
 
Homme
Développeur informatique
Inscription : novembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : novembre 2011
Messages : 31
Points : 37
Points : 37
Quand tu instancies la variable $ID dans ton code tu as écrit
enlèves un des 2 '=' .
10903513 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 19h10   #18
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
oui maintenant aucune erreur mais les données ne sont pas insérées dans la table
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 19h24   #19
Nouveau Membre du Club
 
Homme
Développeur informatique
Inscription : novembre 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : novembre 2011
Messages : 31
Points : 37
Points : 37
Tu insères 8 valeurs dans seulement 7 colonnes de la base de données.
Les noms des colonnes doivent être entourés de guillemets simples, et pas de guillemets autour des variables :

Code :
$query = "INSERT INTO etablissement ('id_etablissement', 'Secteur', 'Etablissement', 'FiliereDeFormation', 'Niveau', 'fiche', 'ID') VALUES ('', $VIlle, $Secteur, $Etablissement, $FiliereDeFormation, $Niveau, $fiche, $ID)";
Vérifies la valeur de retour de mysql_query, qui renvoie true si réussi ou false dans le cas contraire.
10903513 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 19h40   #20
Invité de passage
 
Inscription : octobre 2008
Messages : 21
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 21
Points : 0
Points : 0
merciii pour vos réponses
oui c vrai j'ai une erreur dans la syntaxe de la requête et je crois dans la colonne auto incrément est ce que je dois insérer sa valeur dans la requête ??
parce que il m'affiche une erreur

Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id_etablissement','VIlle', 'Secteur', 'Etablissement', 'FiliereDeFormation', 'N' at line 1

et voilà mon code


<?php

$var="C:\don\donnees.csv";
if (!file_exists($var)){ // le fichier n'existe pas
echo('Fichier introuvable !<br>Importation stoppée.');
}
else
{
$fp = fopen($var, "r");

while (($liste = fgetcsv($fp,4096,";"))!==FALSE){
foreach($liste as $file)

$id_etablissement = $liste[0];
$VIlle = $liste[1];
$Secteur = $liste[2];
$Etablissement = $liste[3];
$FiliereDeFormation = $liste[4];
$Niveau = $liste[5];
$fiche =$liste[6];
$ID= $liste[7];
$query = "INSERT INTO etablissement ( 'id_etablissement','VIlle', 'Secteur', 'Etablissement', 'FiliereDeFormation', 'Niveau' , 'fiche', 'ID' ) VALUES ($id_etablissement,$VIlle,$Secteur,$Etablissement, $FiliereDeFormation,$Niveau, $fiche,$ID)";

mysql_query($query) or die ('Erreur : '.mysql_error() );



}

fclose($fp);
echo("importation réussie des élèves");

}

?>
SISGI est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h56.


 
 
 
 
Partenaires

Hébergement Web