Phpmyadmin Import CSV avec controle d'entrée
Résolu/Fermé
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
-
15 juil. 2009 à 14:05
Christr Messages postés 319 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 19 janvier 2011 - 2 oct. 2009 à 10:52
Christr Messages postés 319 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 19 janvier 2011 - 2 oct. 2009 à 10:52
A voir également:
- Phpmyadmin Import CSV avec controle d'entrée
- Controle parental pc - Guide
- Test d'entrée formation secrétaire comptable greta - Forum Windows
- Localhost/phpmyadmin - Forum Ubuntu
- Firefox point d'entrée introuvable - Forum Mozilla Firefox
- Http://localhost/phpmyadmin/ ne marche pas .. ✓ - Forum PHP
25 réponses
epoulos
Messages postés
85
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
16 décembre 2011
498
15 juil. 2009 à 14:08
15 juil. 2009 à 14:08
Bonjour,
Lance l'écriture dans le fichier à la fin du script. Ce qui te permettra de tester si ce n'est pas une entrée qui existe déjà. Entre temps, concatène les écritures dans une variable.
Cordialement,
epoulos
Lance l'écriture dans le fichier à la fin du script. Ce qui te permettra de tester si ce n'est pas une entrée qui existe déjà. Entre temps, concatène les écritures dans une variable.
Cordialement,
epoulos
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
15 juil. 2009 à 15:45
15 juil. 2009 à 15:45
Je viens de lancer ma commande
LOAD DATA INFILE "/var/www/html/titi.csv" REPLACE INTO TABLE balance FIELDS TERMINATED BY ";";
mon souci est que avec cette commande unique il me rajoute toute la page directement cela signifie que j'ai des doublons
il y aune méthode simple pour éviter les doublons ou pas ?
LOAD DATA INFILE "/var/www/html/titi.csv" REPLACE INTO TABLE balance FIELDS TERMINATED BY ";";
mon souci est que avec cette commande unique il me rajoute toute la page directement cela signifie que j'ai des doublons
il y aune méthode simple pour éviter les doublons ou pas ?
epoulos
Messages postés
85
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
16 décembre 2011
498
15 juil. 2009 à 17:01
15 juil. 2009 à 17:01
Fais une requête au niveau de la base de données pour supprimer le doublon et non au niveau du php
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
15 juil. 2009 à 17:20
15 juil. 2009 à 17:20
Ce que tu me dit sa revien a vidé tout les champs et remettre les compteur à zéro pour réinséré le tout mais ceu que je souhaiterais c'est qu il n'ajoute que les champs non présent dans la table sachant que l'odre est toujours le meme
si il commence la table à 33 entré et que le fichier csv en à 100 il ajoutera les lignes de 34 à 100
tu vois ou je veu en venir ?
si il commence la table à 33 entré et que le fichier csv en à 100 il ajoutera les lignes de 34 à 100
tu vois ou je veu en venir ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
epoulos
Messages postés
85
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
16 décembre 2011
498
16 juil. 2009 à 11:13
16 juil. 2009 à 11:13
Je ne sais pas trop comment coder ça mais au niveau de la requête qui rempli la base, fait des tests avant écriture.
Je ne suis pas un spécialiste des bases de données dsl.
Je ne suis pas un spécialiste des bases de données dsl.
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
16 juil. 2009 à 16:36
16 juil. 2009 à 16:36
Je comprends pas tout, détail un peu plus, l'import tu le fais comment ?
Tu développes avec un laguage en particulier pour le faire ?
et qu'est ce que tu appelles "double" :
"2009-07-15";"15:22:09";"dors";"titi"
"2009-07-15";"15:32:11";"mange";"tata"
"2009-07-16";"17:32:11";"dors";"titi"
Je ne vois pas de doublons, a moins que tu n'importes quele couple "dors" et "titi" et que la date et l'heure c'est l'import qui le génère...
bref dis en + !
Tu développes avec un laguage en particulier pour le faire ?
et qu'est ce que tu appelles "double" :
"2009-07-15";"15:22:09";"dors";"titi"
"2009-07-15";"15:32:11";"mange";"tata"
"2009-07-16";"17:32:11";"dors";"titi"
Je ne vois pas de doublons, a moins que tu n'importes quele couple "dors" et "titi" et que la date et l'heure c'est l'import qui le génère...
bref dis en + !
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
16 juil. 2009 à 17:01
16 juil. 2009 à 17:01
AAAAAA le big boss ça veu dire que le problème va vite avancer
donc voila je t explique j'ai une application qui génère un fichier csv qui est mis à jour toute les 5 minutes
ma table balance
Field°°°°Type°°°°°°°°°Collation°°°°°°°°Attributes°°Null°°Default°°°°Extra°°°°°°°°°°
ref°°°°°°int(11)°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°auto_increment
date°°°°date°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
temps°°time°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
action°°varchar(4)°°°°utf8_general_ci°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
id°°°°°°varchar(200)°°utf8_general_ci°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
"oups y avait un tit problème dans le fichier csv"
le fichier csv crée à 15h25 ceux-ci :
"";"2009-07-15";"15:22:90";"titi"
à 15h30 ceux-ci :
"";"2009-07-15";"15:22:09";"titi"
"";"2009-07-15";"15:28:11";"tata"
à 15h35 ceux-ci
"";"2009-07-15";"15:22:09";"dors";"titi"
"";"2009-07-15";"15:28:11";"mange";"tata"
"";"2009-07-16";"17:32:11";"dors";"titi"
le fichier csv se nomme tutu.csv oki ?
donc moi j'ai une commande que je lance dans sql comme tu ma expliqué
(pour revenir au problème antérieur de l'appli si tu te souvien)
l'orsque que je la lance à 15h30
LOAD DATA INFILE "/var/www/html/tutu.csv" REPLACE INTO TABLE balance FIELDS TERMINATED BY ";";
je n'ai pas de problème
je la relance à 15h40
LOAD DATA INFILE "/var/www/html/titi.csv" REPLACE INTO TABLE balance FIELDS TERMINATED BY ";";
pour mettre à jour ma base de donnée
voici le problème à cause de la référence auto incrémenté la je me retrouve avec des doublons sur la ligne date temps action id
donc voila je t explique j'ai une application qui génère un fichier csv qui est mis à jour toute les 5 minutes
ma table balance
Field°°°°Type°°°°°°°°°Collation°°°°°°°°Attributes°°Null°°Default°°°°Extra°°°°°°°°°°
ref°°°°°°int(11)°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°auto_increment
date°°°°date°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
temps°°time°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
action°°varchar(4)°°°°utf8_general_ci°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
id°°°°°°varchar(200)°°utf8_general_ci°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
"oups y avait un tit problème dans le fichier csv"
le fichier csv crée à 15h25 ceux-ci :
"";"2009-07-15";"15:22:90";"titi"
à 15h30 ceux-ci :
"";"2009-07-15";"15:22:09";"titi"
"";"2009-07-15";"15:28:11";"tata"
à 15h35 ceux-ci
"";"2009-07-15";"15:22:09";"dors";"titi"
"";"2009-07-15";"15:28:11";"mange";"tata"
"";"2009-07-16";"17:32:11";"dors";"titi"
le fichier csv se nomme tutu.csv oki ?
donc moi j'ai une commande que je lance dans sql comme tu ma expliqué
(pour revenir au problème antérieur de l'appli si tu te souvien)
l'orsque que je la lance à 15h30
LOAD DATA INFILE "/var/www/html/tutu.csv" REPLACE INTO TABLE balance FIELDS TERMINATED BY ";";
je n'ai pas de problème
je la relance à 15h40
LOAD DATA INFILE "/var/www/html/titi.csv" REPLACE INTO TABLE balance FIELDS TERMINATED BY ";";
pour mettre à jour ma base de donnée
voici le problème à cause de la référence auto incrémenté la je me retrouve avec des doublons sur la ligne date temps action id
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
16 juil. 2009 à 17:21
16 juil. 2009 à 17:21
Merci, merci, tant que ça, ça va me faire rougir et si j't'aide pas je vais passer pour un bidon :P
Si je comprend le truc il faudrait que dans ta BDD tu créé un index UNIQUE sur les 2 champs qui t'interessent : "temps" et "actions". Au moins le replace agirait correctment c'est a dire a faire un update et non un insert lorsqu'il identifie un enregistrement via ce "couple" unique...
Si je comprend le truc il faudrait que dans ta BDD tu créé un index UNIQUE sur les 2 champs qui t'interessent : "temps" et "actions". Au moins le replace agirait correctment c'est a dire a faire un update et non un insert lorsqu'il identifie un enregistrement via ce "couple" unique...
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
17 juil. 2009 à 09:21
17 juil. 2009 à 09:21
mon souci et que je ne peu crée de champ unique sur le temps car si la date change et que l'action est faite au meme temps sa risque de posé problème non ?
et l'action il y en a que 2 possible
désolé une erreur dans l'explication du csv je recommence :
le fichier csv crée à 15h25 ceux-ci :
"";"2009-07-15";"15:22:90";"dors";"titi"
à 15h30 ceux-ci :
"";"2009-07-15";"15:22:09";"dors";"titi"
"";"2009-07-15";"15:28:11";mange";"tata"
à 15h35 ceux-ci
"";"2009-07-15";"15:22:09";"dors";"titi"
"";"2009-07-15";"15:28:11";"mange";"tata"
"";"2009-07-16";"17:32:11";"dors";"titi"
le fichier csv se nomme tutu.csv oki ?
et l'action il y en a que 2 possible
désolé une erreur dans l'explication du csv je recommence :
le fichier csv crée à 15h25 ceux-ci :
"";"2009-07-15";"15:22:90";"dors";"titi"
à 15h30 ceux-ci :
"";"2009-07-15";"15:22:09";"dors";"titi"
"";"2009-07-15";"15:28:11";mange";"tata"
à 15h35 ceux-ci
"";"2009-07-15";"15:22:09";"dors";"titi"
"";"2009-07-15";"15:28:11";"mange";"tata"
"";"2009-07-16";"17:32:11";"dors";"titi"
le fichier csv se nomme tutu.csv oki ?
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
17 juil. 2009 à 10:59
17 juil. 2009 à 10:59
mm dis moi c'est quoi pour toi dans ta BDD les champs qui forme un "enregistrement unique" car la je vois pas bien si c'ets ça la notion de doublons si tu prends en compte la date...
J'ai un peu de mal a cerner ton problème :S
J'ai un peu de mal a cerner ton problème :S
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
17 juil. 2009 à 11:21
17 juil. 2009 à 11:21
Dans ma table :
ref°°°°°°int(11)°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°auto_increment
date°°°°date°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
temps°°time°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
action°°varchar(4)°°°°utf8_general_ci°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
id°°°°°°varchar(200)°°utf8_general_ci°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
la colone ref est auto incrémenté et clé primaire
c'est pourquoi dans mon csv le premier champs est vide et qu'il a juste des guillemet
"";"2009-07-15";"15:22:09";"dors";"titi"
ensuite ba y a la date temps action id
donc si j'envoi mmon csv qui as
"";"2009-07-15";"15:22:09";"dors";"titi"
en lecture sql sa fera
1 2009-07-15 15:22:09 dors titi
mais si je renvoi mon csv avec
"";"2009-07-15";"15:22:09";"dors";"titi"
"";"2009-07-15";"15:28:11";mange";"tata"
en lecture sql sa feras
1 2009-07-15 15:22:09 dors titi
2 2009-07-15 15:22:09 dors titi
3 2009-07-15 15:28:11 mange tata
donc doublon entre la ligne 1 et 2
tu voi ou je veu en venir c'est pas simple à expliquer
ref°°°°°°int(11)°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°auto_increment
date°°°°date°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
temps°°time°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
action°°varchar(4)°°°°utf8_general_ci°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
id°°°°°°varchar(200)°°utf8_general_ci°°°°°°°°°°°°°°No°°°°°°°°°°°°°°°°°°°°°°°°°°°°
la colone ref est auto incrémenté et clé primaire
c'est pourquoi dans mon csv le premier champs est vide et qu'il a juste des guillemet
"";"2009-07-15";"15:22:09";"dors";"titi"
ensuite ba y a la date temps action id
donc si j'envoi mmon csv qui as
"";"2009-07-15";"15:22:09";"dors";"titi"
en lecture sql sa fera
1 2009-07-15 15:22:09 dors titi
mais si je renvoi mon csv avec
"";"2009-07-15";"15:22:09";"dors";"titi"
"";"2009-07-15";"15:28:11";mange";"tata"
en lecture sql sa feras
1 2009-07-15 15:22:09 dors titi
2 2009-07-15 15:22:09 dors titi
3 2009-07-15 15:28:11 mange tata
donc doublon entre la ligne 1 et 2
tu voi ou je veu en venir c'est pas simple à expliquer
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
17 juil. 2009 à 11:26
17 juil. 2009 à 11:26
Okay ! Je vois un peu mieux le souci ;)
Et un index unique sur "date temps action id" ?
Et un index unique sur "date temps action id" ?
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
17 juil. 2009 à 11:32
17 juil. 2009 à 11:32
je sais pas si sa peu marcher sachant que la date reste la meme chaque jour et pour tous et le temps revien en continue chaque jour et pour les action et les id et bien c'est a peu près pareil
tu crois que sa peu fonctionner ?
tu crois que sa peu fonctionner ?
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
17 juil. 2009 à 11:34
17 juil. 2009 à 11:34
Je viens d'essayé en maitenan des index a tout le monde et sa marche pas snifffff
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
17 juil. 2009 à 11:40
17 juil. 2009 à 11:40
Quand tu dis tout le monde, t'as pas mis sur "ref" au moins ?
c'est sur tout sauf "ref"
c'est sur tout sauf "ref"
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
17 juil. 2009 à 14:15
17 juil. 2009 à 14:15
BA SI TOUT LE MONDE KOI
oki je vai refaire ma table lol
oki je vai refaire ma table lol
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
17 juil. 2009 à 14:29
17 juil. 2009 à 14:29
re
désolé
sa ne fonctionne pas arfffff
désolé
sa ne fonctionne pas arfffff
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
17 juil. 2009 à 15:43
17 juil. 2009 à 15:43
Bingo !
Alors, essayes avec
LOAD DATA INFILE "/var/www/html/titi.csv" REPLACE INTO TABLE balance FIELDS TERMINATED BY ";" LINES TERMINATED BY '\r\n'
source : http://dev.mysql.com/doc/refman/5.0/fr/load-data.html
Alors, essayes avec
LOAD DATA INFILE "/var/www/html/titi.csv" REPLACE INTO TABLE balance FIELDS TERMINATED BY ";" LINES TERMINATED BY '\r\n'
source : http://dev.mysql.com/doc/refman/5.0/fr/load-data.html
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
17 juil. 2009 à 17:12
17 juil. 2009 à 17:12
Dis moi si ça marche ;)
Christr
Messages postés
319
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
19 janvier 2011
46
20 juil. 2009 à 10:24
20 juil. 2009 à 10:24
et non désolé
sa ne rentre que la dernière ligne mais je viens de remarquer un autre problème
la première fois pour mettre a jour ma table j'ai fait un import csv avec le chemin à parcourir
mais avec le LOAD DATA INFILE cela pose problème mes champs date et temps reste à 0000-00-00 00:00:00 et le champs id comprend des guillemet en plus
:$
Bizard
sa ne rentre que la dernière ligne mais je viens de remarquer un autre problème
la première fois pour mettre a jour ma table j'ai fait un import csv avec le chemin à parcourir
mais avec le LOAD DATA INFILE cela pose problème mes champs date et temps reste à 0000-00-00 00:00:00 et le champs id comprend des guillemet en plus
:$
Bizard