IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Import fichier CSV [phpMyAdmin]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Import fichier CSV
    Bonjour, je viens de m'inscrire sur le forum pour espérer avoir un peu d'aide!!
    Je suis un novice total en php et phpadmin, mais je suis gestionnaire du site du college ou je travail.
    J'ai installé un programme appelé cahier de textes et sur ce cahier de texte, il est possible maintenant d'y gérer l'absence des élèves.
    Les tables sont créées, maintenant il faut que j'importe la liste des élèves!!!
    Je sais qu'il faut la faire et l'enregistrer en CSV, mais lequel, CSV DOS, CSV separateur?
    Lors de l'essai a l'import, j'ai un message erreur ou il est inscrit ce qui se trouve dans la 1ere colonne du fichier?
    Pouvez vous me decrire la procedure, car malgré de nombreuses recherches sur le net et nombreux essais, je n'y arrive pas?
    Merci de votre aide et de votre indulgence envers un novice
    Cordialement
    Laurent

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    montre nous des exemples de données que tu as dans le fichier CSV et montre nous le format de la table dans phpMyAdmin
    GNAP !

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Pour importer la liste des éléves (dans un fichier CSV) vers ton site (dans une table éléve) ....

    Le fichier CSV (ex de format ligne à ligne):
    NOM;PRENOM
    aaa;jean
    bbb;yoan
    ccc;esteban
    ....

    Ta table (qui est déjà définie):

    La procédure:
    Lire ligne à ligne le fichier CSV (voir sur le net ouverture, fermeture fichier, fonction php fgetcsv)
    Remplir au fur et à mesure la table (voir sur le net ouverture, fermeture base de données, INSERT en SQL, mysql_querry en php)

    Bonne recherche,
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    voici la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE IF NOT EXISTS `ele_liste` (
    `ID_ele` smallint(4) unsigned NOT NULL AUTO_INCREMENT,
    `nom_ele` varchar(50) NOT NULL,
    `prenom_ele` varchar(50) NOT NULL,
    `classe_ele` varchar(5) NOT NULL,
    PRIMARY KEY (`ID_ele`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    le fichier excel est http://www4b.ac-lille.fr/~lienarttou.../ele_liste.csv

    Merci de votre aide

  5. #5
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par Fench Voir le message
    La procédure:
    Lire ligne à ligne le fichier CSV (voir sur le net ouverture, fermeture fichier, fonction php fgetcsv)
    Remplir au fur et à mesure la table (voir sur le net ouverture, fermeture base de données, INSERT en SQL, mysql_querry en php)
    de ce que j'ai compris, j'ai plutôt l'impression qu'il veut juste faire la première importation dans phpMyAdmin
    pour il faut indiquer la liste des colonnes séparées par des virgules :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_ele, prenom_ele, classe_ele
    GNAP !

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    oui, tu as raison

    La question serait: Comment importer un fichier de données CSV dans une base de données sous PhpMyAdmin (les tables étant déjà crées) ?

    Pas de bol, je bosse sous PgMyAdmin et j'ai pas MySql

    Mais avec une recherche voici par exemple un lien (le premier que j'ai trouvé)
    ici
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par nosferapti Voir le message
    de ce que j'ai compris, j'ai plutôt l'impression qu'il veut juste faire la première importation dans phpMyAdmin
    pour il faut indiquer la liste des colonnes séparées par des virgules :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_ele, prenom_ele, classe_ele
    J'ai essayé comme ça, mais j'ai une erreur?
    Erreur
    requête SQL:

    nom_ele,

  8. #8
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    Citation Envoyé par workathome Voir le message
    J'ai essayé comme ça, mais j'ai une erreur?
    Erreur
    requête SQL:

    nom_ele,
    ce n'est pas une requête MySQL, c'est la liste des colonnes correspondant à ton fichier
    regarde le lien que Fench t'a indiqué et quand tu seras sur la page d'importation tu mettra la liste des colonnes que je t'ai indiquée
    GNAP !

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par nosferapti Voir le message
    ce n'est pas une requête MySQL, c'est la liste des colonnes correspondant à ton fichier
    regarde le lien que Fench t'a indiqué et quand tu seras sur la page d'importation tu mettra la liste des colonnes que je t'ai indiquée
    j'ai regardé la page, mais le soucis, en appliquant la procedure décrite, c'est que lorsque je copie le contenu d'excel sur le bloc note, je n'ai pas la tabulation comme décrite dans le lien???
    Apres plusieurs essais, je sais que c'est un probleme de ponctuation, car j'arrive bien a importé le nombre de colonne, mais elles restes vident???
    QUE FAUT IL METTRE A LA FIN DE CHAQUE DONNEES??

  10. #10
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    A suivre:


    Pour transférer une liste Excel au format *.csv avec PhpMyAdmin

    Lister tout dans Excel (avec tous les noms des champs comme entête)

    et ensuite Faire un “Copier/Collier” dans un fichier .txt ou enregistrer au format *.csv

    Importer dans la base de données

    Marche à suivre:

    cliquez “importer”
    cliquez “Csv load Data”
    effacer “champs terminés par”
    effacer “champs entourés par”
    effacer “caractère spécial”
    LAISSER “auto”
    Nom des colonnes = ENTRER TOUS LES NOMS SÉPARÉS PAR UNE VIRGULE

    POUR EXPORTER DE PHPMYADMIN

    Exporter avec [ TABLEUR "OPEN DOCUMENT" ]
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    ça y est, j'ai réussi,
    il fallait copier excel vers éditeur de texte, ensuite séparer les colonnes par des ; et enlever les espaces
    Merci pour votre aide

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 77
    Points
    77
    Par défaut Procédure complète
    Bonsoir
    voici ma contribution, je crois que l'on travaille sur le même problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
     
    <?php 
    ////include ("inc/prive.inc.php");
    include("../haut.inc.php");
    include ("../inc/fonctions.inc.php");
    ////include ("config/constantes.inc.php");
    Normalisation();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
      <title>Gestion de l'importation des données de Sconet</title>
    <a href="index.php">****Accueil Général de la Gestion des sanctions du collège Ponsard****</a>
        <script language="javascript" type="text/javascript" src="inc/fonctions.js">
      </script>
    </head>
    <body>
    <?php
    // autorisations pour la page
    ////autoriser ("admin");
    // menu
    //require ("inc/menu.inc.php");
    ?>
    <div id="texte">
    <h2>Importation du fichier CSV de Sconet, cette importation est longue, veuillez patienter</h2>
    <?php
    $mode = isset($_POST['mode']) ? $_POST['mode'] : Null;
     
    switch ($mode)
     {
     case 'Confirmer': 
    	// ouvrir la BD
    	include ("../variables.inc.php");
    	$lienDB = mysql_connect($bddserver, $bddlogin, $bddpassword);
    	mysql_select_db ($bdd);
    			//Vide la table 'nom_de_la_table'
    	$query = "DELETE FROM elevescomplete";
    	$result = mysql_query($query);
    	echo $query;
    	$handle = fopen("./eleves.csv", "r");
    	$ligne = 1;
     
    	while (($data = fgetcsv($handle, 5000, ";","\"")) !== FALSE) 
    		{
    		$num = count($data);
    		if ($ligne == 1)
    			{
    			// sur la première ligne, on trouve les intitulés des colonnes
     
     
    			$debutsql = "INSERT INTO elevescomplete (";
    			for ($i=0; $i < $num; $i++) 
    				{
    				$debutsql .= "`$data[$i]";
    				if ($i < $num-1) $debutsql .= "`,";
    				}
    			$debutsql .= "`) VALUES (";
    			}
    			else
    			{
    			// sur les lignes suivantes, on trouve les infos à introduire dans la BD
    			$sql = $debutsql;
    			for ($i=0; $i < $num; $i++) 
    				{
    				$sql .= "'".mysql_real_escape_string($data[$i])."'";
    				if ($i < $num-1) $sql .= ","; else $sql .= ");";
    				}
    			mysql_query($sql);
    			if (mysql_error()) 
    				{ 
    				echo mysql_error() ."<br>\n";  
    				$erreur = true;
    				}
    			}
    			$ligne++;
    			//echo "$sql <br />";
    			//mysql_query($sql);
     
    		}
            echo "L'importation des données semble s'être bien passée.";
    		fclose($handle);
    		mysql_close ($lienDB);
            if ($erreur == false)
    			{
    			$texte = "L'importation des données semble s'être bien passée.";
    			//redir ("index.php","",$texte, 5000);
                }
    			else 
    			{
    			$texte = "Il s'est produit une erreur durant l'importation.";
    			//redir ("index.php","",$texte, 10000);
    			}
     break;
     case 'Envoyer':
    	// recopie du fichier sous un nom définitif
    	$nomTemporaire = $_FILES['fichierCSV']['tmp_name'];
    	if( !move_uploaded_file($nomTemporaire, "./eleves.csv") )
    		exit("Impossible de copier le fichier.");
     
    		echo "<div style=\"text-align: center\">\n";
            echo "<form name=\"form1\" method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">\n";
            echo "<p>Le fichier CSV a été copié sur le serveur.</p>\n";
            echo "<p>Veuillez confirmer l'exportation des données.</p>\n";
    		echo "<p>\n<input type=\"reset\" name=\"submit\" value=\"Annuler\"";
    		echo "onclick=\"javascript:history.go(-1)\">\n";
            echo "<input type=\"submit\" value=\"Confirmer\" name=\"mode\"></p>\n";
            echo "</form>\n";
            echo "</div>\n";
     
    	// tableau de prévisualisation
    	echo "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\">\n";
    	$handle = fopen("./eleves.csv", "r");
    	//while (($data = fgetcsv($handle, 5000, ",","\"")) !== FALSE) 
    	while (($data = fgetcsv($handle, 5000, ";","\"")) !== FALSE) 
    		{
    		$num = count($data);
    		echo "<tr>\n";
    		for ($i=0; $i < $num; $i++) 
    			echo "<td>".$data[$i] . "</td>\n";
    		echo "</tr>\n";
    		}
    	fclose($handle);
    	echo "</table>\n";
    	break;
     default:
    	echo "<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\" ";
    	echo "name=\"form1\" enctype=\"multipart/form-data\">\n";
    	echo "<input name=\"fichierCSV\" type=\"file\">\n";
    	echo "<input name=\"mode\" value=\"Envoyer\" type=\"submit\">\n";
    	echo "</form>\n";
     break;
     }
    ?>
    </div>
     
    </body>
    </html>
    Cela prend le fichier dit sconet en csv, puis le copie et l'importe ds une base mysql
    Pascal

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    je vois dans le script Gestion des sanctions du collège, c'est quoi comme programme?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 77
    Points
    77
    Par défaut Gestion
    Bonsoir,
    C'est un programme "maison" de gestion des retenues, absences et sanctions en php/mysql
    Pascal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Import fichier CSV
    Par oki972 dans le forum SQLite
    Réponses: 5
    Dernier message: 08/10/2007, 20h58
  2. [Pb Importation fichier CSV]
    Par Jeremie_Vi dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2007, 06h54
  3. Importation fichier CSV Excel
    Par @lex(is) dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/06/2006, 02h16
  4. Update de plusieurs tables, import fichier csv sql loader
    Par fusuke dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 18/05/2006, 15h08
  5. Réponses: 9
    Dernier message: 31/01/2006, 22h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo