Csv vers mysql savec mise à jour des données
Fermé
gvc001
Messages postés
20
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
1 juin 2010
-
7 avril 2010 à 12:41
gvc001 Messages postés 20 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 1 juin 2010 - 14 avril 2010 à 17:46
gvc001 Messages postés 20 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 1 juin 2010 - 14 avril 2010 à 17:46
A voir également:
- Csv vers mysql savec mise à jour des données
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour windows 7 vers 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
3 réponses
Salut !
Les fichiers CSV sont séparés par des points-virgule, je pense.
Lors de l'importation (en PHP je suppose), tu as la lecture du fichier, la récupération des variables, et l'insertion dans la BDD.
Quand tu récupères les variables, effectue un tri :
Voila ;)
Ps : Lors de l'insertion/update, effectue toi-même un tri au cas où tu voudrais modifier, je ne sais pas comment tu t'y prend pour cela;
Cordialement.
Ps 2 : j'ai peut-être fait une erreur de syntaxe dans ce code, je ne l'ai pas essayé.
Les fichiers CSV sont séparés par des points-virgule, je pense.
Lors de l'importation (en PHP je suppose), tu as la lecture du fichier, la récupération des variables, et l'insertion dans la BDD.
Quand tu récupères les variables, effectue un tri :
// Lecture du fichier // Récupération et mise en variable // $variable 1, $variable2 et $variable3 sont des valeurs récupérées du fichier. // Connexion à la BDD $donnees = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS nombre FROM table WHERE champ1='$variable1', champ2='$variable2', champ3=$variable3'")); if($donnees['nombre']==0){ // Soit insertion, soit mise à jour (je ne sais pas comment te repérer, tu ne l'as pas spécifié) } else{ echo "Cette ligne existe déjà !"; } mysql_close();
Voila ;)
Ps : Lors de l'insertion/update, effectue toi-même un tri au cas où tu voudrais modifier, je ne sais pas comment tu t'y prend pour cela;
Cordialement.
Ps 2 : j'ai peut-être fait une erreur de syntaxe dans ce code, je ne l'ai pas essayé.
Salut,
Si ton fichier reste complet, et subit des modifications, mais pas la base, supprime toutes les données de la base, et recharge le fichier CSV. Ce sera réinitialisé.
Sinon, je suppose que tu utilise phpMyAdmin (si ce n'est pas le cas, peut-importe);
Vraiment sans page web, je ne voit comme seule solution : effectuer des requêtes SQL qui suppriment les doublons.
Pour cela, essaie de chercher un code sur internet qui en est capable, pcq je ne vois pas comment faire. Et encore, les codes que tu trouveras seront sur des pages web, essaie de formuler ça sur ton phpMyAdmin en language SQL...
Bye ;)
Ps : Voici un code tout fait, qui me semble bien (il sélectionne tout sauf les doublons, supprime les données, résinsère les données sans doublons);
Si ton fichier reste complet, et subit des modifications, mais pas la base, supprime toutes les données de la base, et recharge le fichier CSV. Ce sera réinitialisé.
Sinon, je suppose que tu utilise phpMyAdmin (si ce n'est pas le cas, peut-importe);
Vraiment sans page web, je ne voit comme seule solution : effectuer des requêtes SQL qui suppriment les doublons.
Pour cela, essaie de chercher un code sur internet qui en est capable, pcq je ne vois pas comment faire. Et encore, les codes que tu trouveras seront sur des pages web, essaie de formuler ça sur ton phpMyAdmin en language SQL...
Bye ;)
Ps : Voici un code tout fait, qui me semble bien (il sélectionne tout sauf les doublons, supprime les données, résinsère les données sans doublons);
<?php // Connexion //mysql_query(" SELECT DISTINCT id, courses, dates FROM tempcourse $rqSql = "SELECT DISTINCT courses, dates FROM tempcourse"; $result = mysql_query( $rqSql, $idConnect); mysql_query("DELETE FROM tempcourse"); while ( $row = mysql_fetch_array( $result)) { mysql_query("INSERT INTO tempcourse (courses, dates) VALUES ('" . $row['courses'] . "', '" . $row['dates'] . "')"); } mysql_close(); ?>
Bonjour,
D'après moi ; pas besoin de coder, des outils sont déjà existants.
Pour une BDD mysql, l'outil mysqlimport devrait te permettre de charger ton fichier csv facilement et sans problèmes.
Tu trouveras plein d'exemple sur google, notemment ici :
https://dev.mysql.com/doc/refman/8.0/en/mysqlimport.html
Comme tu ne souhaite pas de doublons ;
L'option --delete devrait être utilisée pour vider la table avant de la recharger.
PS : @Bilow : un fichier csv peut avoir n'importe que délimiteur, pas seulement le ";".
Mais tu peux configurer ce séparateur dans mysqlimport...
Cordialement, M.
D'après moi ; pas besoin de coder, des outils sont déjà existants.
Pour une BDD mysql, l'outil mysqlimport devrait te permettre de charger ton fichier csv facilement et sans problèmes.
Tu trouveras plein d'exemple sur google, notemment ici :
https://dev.mysql.com/doc/refman/8.0/en/mysqlimport.html
Comme tu ne souhaite pas de doublons ;
L'option --delete devrait être utilisée pour vider la table avant de la recharger.
PS : @Bilow : un fichier csv peut avoir n'importe que délimiteur, pas seulement le ";".
Mais tu peux configurer ce séparateur dans mysqlimport...
Cordialement, M.
gvc001
Messages postés
20
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
1 juin 2010
14 avril 2010 à 17:46
14 avril 2010 à 17:46
slt Swed pour ta reponse, effectivement je ne souhaite pas faire ma mise à jour de toute ma table , juste les données dur une periode donnée, d'où l'incapicité de vider la table comme tu le souhaite.
7 avril 2010 à 15:02
Pour tout dire , je dispose d'une base avec la table dont j'ai besoin de mettre à jour via un fichier CSV et le fichier CSV proprement dit avec des champs separés par un point virgule.
je souhaite avoir plus d'orientation possible car je suis pas trop avancé avec le PHP. je n'ai pas besoin de page web , que besoin d'un script quelconque pour m'aider à gerer mon importation et surtout la mise à jour des données deja existantes.
Merci une fois de plus pour l'attention et le temps que vous accorderez à mon post