Table des matières
Certains projets Web nécessitent la gestion de listes de données volumineuses telles que des listes de produits, de ventes, d'utilisateurs et d'actualités.De nombreuses personnes trouvent plus facile d'avoir ces données hors ligne dans une feuille de calcul.
L'objectif de ce tutoriel est de pouvoir effectuer l'import quel que soit le programme, qu'il s'agisse d'Excel ou de Libreoffice ou d'une autre option disponible pour l'utilisateur.
Après avoir créé une base de données MySQL, vous devez la remplir d'informations. Les données de la base de données sont généralement contenues dans un fichier limité par des virgules, ou CSV, et doivent être importées dans la base de données MySQL. Il s'agit d'une tâche très simple utilisant les fonctions intégrées de PHP qui facilitent l'importation à partir d'un fichier CSV et son exportation vers une base de données MySQL.
Dans ce cas, nous avons une liste de prix de service et de pièces d'ordinateur.
[couleur = # 0000cd] CRÉER TABLE S'IL N'EXISTE PAS `prix` ([/ couleur]
[color = # 0000cd] `id` int (10) NON NULL AUTO_INCREMENT, [/ color]
[couleur = # 0000cd] `concept` varchar (255) DEFAUT NULL, [/ couleur]
[couleur = # 0000cd] `prix` décimal (10,2) DEFAUT NULL, [/ couleur]
[couleur = # 0000cd] CLÉ PRIMAIRE (`id`) [/ couleur]
[color = # 0000cd]) ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1; [/ color]
Maintenant le code php qui fait tout le travail
[couleur = #0000cd] <? // on se connecte à la base de données [/ color]
[color = # 0000cd] $ connect = mysql_connect ('localhost', 'user', 'password'); [/ color]
[couleur = # 0000cd] si (! $ connect) {[/ couleur]
[color = # 0000cd] die ('Impossible de se connecter à MySQL :'. mysql_error ()); [/ color]
[couleur = #0000cd]} [/couleur]
[color = # 0000cd] $ connectdb = mysql_select_db ('Services', $ connect); [/ color]
[color = #0000cd] // On upload le fichier csv qui vient du formulaire [/ color]
[color = # 0000cd] move_uploaded_file ($ _ FILES ["file"] ["tmp_name"], $ upload_dir. "/". $ FILES ["file"] ["tmp_name"]); [/ color]
[couleur = # 0000cd] $ cvs = $ upload_dir. "/". $ _FILES ["fichier"] ["nom"]; [/ couleur]
[color = # 0000cd] // row comptera le nombre de lignes dans le fichier commence à 0 [/ color]
[couleur = # 0000cd] $ ligne = 0; [/ couleur]
[color = # 0000cd] $ fp = fopen ($ cvs. "", "r"); [/ color]
[color = # 0000cd] while (! feof ($ fp)) {// je lis le fichier une ligne à la fois [/ color]
[couleur = # 0000cd] $ ligne ++; [/ couleur]
[color = # 0000cd] // Je saute la première ligne car elle contient les titres et je ne suis pas intéressé à les insérer dans la base de données [/ color]
[couleur = # 0000cd] si ($ ligne> 1) {[/ couleur]
[color = # 0000cd] // La ligne que je lis je la sépare avec explose et j'indique qu'elle est séparée par; [/ color]
[color = # 0000cd] $ data = exploser (";", fgets ($ fp)); [/ color]
[couleur = # 0000cd] $ id = $ données [0]; [/ couleur]
[couleur = # 0000cd] $ concept = $ données [1]; [/ couleur]
[couleur = # 0000cd] $ prix = $ données [2]; [/ couleur]
[color = # 0000cd] $ query = "INSERT INTO price (id, concept, price) VALUES ($ data [0], '$ data [1]', '$ data [2]')"; [/ color]
[color = # 0000cd] mysql_query ($ query, $ connect); [/ color]
[color = # 0000cd] // fin de la boucle while [/ color]
[couleur = #0000cd]} [/couleur]
[couleur = #0000cd]} [/couleur]
[color = #0000cd] // fermer le fichier [/ color]
[couleur = # 0000cd] fclose ($ csv); [/ couleur]
[color = # 0000cd] echo "Import terminé !!!"; [/ color]
[color = # 0000cd] mysql_close ($ connect); [/ color]
[couleur = #0000cd]?> [/couleur]
Vous pouvez également utiliser ce script et le rendre plus flexible, permettant à l'utilisateur d'enregistrer le fichier dans un formulaire html avec
[couleur = #0000cd] [/couleur]
[couleur = #0000cd] [/couleur]
[couleur = #0000cd] [/couleur]
et ainsi pouvoir télécharger des fichiers CSV et importer des données de ce fichier CSV vers n'importe quelle base de données mysql ou même vers plusieurs à partir d'un seul fichier. De nombreux ajustements peuvent être effectués avec ce script et l'utiliser de la manière souhaitée.