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

PHP & Base de données Discussion :

Synthétiser le contenu d'un fichier en base [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Par défaut Synthétiser le contenu d'un fichier en base
    Bonjour a tous

    J'ai un petit probleme et ne vois pas trop comment m'en sortir peut etre avec votre aide vais-je y arriver ?
    Je récupere dans un fichier txt toutes les lignes et j'extraits les differents champs de la ligne qui m'interesse en l'occurence un nom et une date. (nb de lignes est variable et je sais importer et extraire les datas aucun soucis)
    Une ligne c'est un nom et une date mais le nom et la date peuvent apparaitre plusieurs fois dans le fichier Ce qui m'interesse c'est de savoir combien de fois j'ai le nom pour une date

    Exemple de lignes dans le fichier txt
    02-06-2008 DUPONT
    02-06-2008 DURAND
    02-06-2008 DUPONT
    03-06-2008 UNTEL
    02 -06 -2008 DURAND
    03-06-2008 DURAND

    Ce que j'aimerais c'est mettre jour un compteur dans une table (bon ca je sais faire) le nombre de durand le 02-06 le nombre de dupont le 02-06 le nb de untel etc ....

    ici dans l'exemple ca donnerait ceci...
    DUPONT 02-06 2008 => 2
    je mets a jour le compteur
    DURAND 02-06-2008=> 2
    je mets a jour
    DURAND 03-06-2008 => 1
    je mets a jour
    UNTEL 03-06-2008 => 1
    je mets a jour

    Enfin je vois ca comme ca en tous cas je ne veux pas "regarder le compteur dans la table et ensuite ajouter 1 au compteur parce que si je reimporte 2 fois de suite ca va me doubler le nb au compteur .

    Si vous avez une idee je suis preneur j'ai pensé a un array mais j'ai un peu de mal avec les array ....

    Merci pour vos idees
    A+

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    tu peux créer une table log avec les champs
    DATE / NOM / COMPTEUR

    puis tu parcours ton fichier.
    tu fais un select dans ta base select * from log where date = $date and
    nom = $nom

    Si tu recois null, ca veut dire que cette entrée n'existe pas, tu dois donc la créer, tu fais un insert avec compteur = 1;

    Si ce n'est pas null tu dois juste ajouter +1 au compteur et faire un update de ta table. Tu as récupéré la valeur du compteur dans ton select.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Par défaut
    Salut batataw

    OUi j'y avais pensé mais ... si j'importe le fichier une deuxieme fois ca va me doubler le compteur non ?

    En fait c'est une extraction de données entre 2 dates (le fichier txt) il suffit que j'extraits du 01.06 au 10.06 aujourd'hui c'est bon mais si demain je refais une extraction du 01.06 au 11.06 ... le compteur va etre doublé du 01.06 au 10.06 et le 11 sera bon tu vois le pb ?

    A+

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Okay je comprends mieux mais pourquoi présentes-tu deux fois les même données ?

    Il serait plus judicieux de ne les présenter 1 seul fois.
    Ou bien si c'est toujours le même fichier que tu gères, tu pourrais tout simplement importer tout le fichier dans ta base. En prenant soin d'effacer
    auparavant toutes les données de la table.
    puis faire le comptage via SQL, SELECT COUNT...
    log = DATE / NOM

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Par défaut
    OUi j'y ai pensé effacer tous les compteurs entre les 2 dates d'import et faire comme tu as dit mais je voulais qq chose de + propre...
    SI tu as une autre idee sinon je vais faire ca .
    A+

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Ecoute si c'est toujours le meme fichier que tu traites, supprime ton champ compteur, importe tout ton fichier en base et fais un comptage via SQL. Comme ca tu n'a pas a gérer de date.

    Tu effaces toute ta table et tu réimportes tout le fichier.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/03/2016, 23h37
  2. Réponses: 7
    Dernier message: 25/05/2008, 14h02
  3. Réponses: 4
    Dernier message: 14/01/2008, 13h50
  4. exporter contenu d'un fichier excel vers base mysql ?
    Par ouldfella dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/03/2007, 10h31
  5. aide pour lire le contenu d'un fichier de base de donnée
    Par hichamo dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 11/05/2006, 10h01

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