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

Langage PHP Discussion :

script php et csv


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut script php et csv
    Bonjour tous le monde,
    Comme je suis débutant en programmation j'ai du mal à traduire ce que voulais faire en php .
    voila ce que souhaite faire:
    j'ai déjà un programme qui tourne en php qui parcours 3000 fichier csv (facture) et qui renvoie le prix totale de consommation par client
    le prix et le nom client sont des colonne dans mes fichiers csv.
    Maintenant à partir de ce script je dois avoir le prix totale de la consommation par client par jours, or actuellement le script me renvoie le prix de la consommation totale par client de toute les fichiers qui existent sans prendre en compte la date du fichier csv .
    La date du fichier est inclus dans son nom , exemple de nom de mes fichiers :
    entreprise_20140708160113.csv
    entreprise_20140708160133.csv
    entreprise_20140708160143.csv
    entreprise_20140708160153.csv
    la date du fichier est les 8 premier caractères commençant par la gauche "20140708" cela correspond à 08 juillet 2014 et ainsi de suite, j'ai des fichier pour toute les jours jusqu’à aujourd’hui.
    Mon problème est comment je dois faire pour afficher les résultat par jour sachant que mon script actuel affiche les résultats du prix totale par client pour tout les csv existant .
    algorithmiquement je sais ce que je dois faire mais incapable de le traduire en code
    si quel'qun à une idée comment procéder ça sera très gentil de ça part

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu nous as demandé l'inverse dans une autre discussion
    http://www.developpez.net/forums/d15...-fichiers-csv/
    donc je ne comprends plus.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    oui c'est déjà fini ce que j'ai demandé l'autre fois, mais comme je suis en stage dans une entreprise à chaque fois il me demande quelque chose, ce nouveau scripte il ressemble a celui de l'autre fois sauf son logique est différent

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    En quoi est-ce différent ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    merci @sabotage
    on faite pour le premier script l'entreprise qui m'accueilli veut que le script calcul le prix totale de consommation par client.
    pour le deuxième il veulent que le script calcul le prix total par client par jour
    ils ont un système qui envoie tout les jours environ 10 ficher csv, les fichier contiennes des détails de facturation (prix appel, numeo appelant, type,...)

    si un client passe 5 appel par jour, ils veulent savoir le pris total/jour , le script que j'ai actuellement calcul le prix total mais de tous les ficher csv que j'a,i sachant que j'ai des fichier qui datent depuis 2014 donc le script calcule le prix totale depuis 2014.
    il faut que le résultat soit prix total/client/jour

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ou est stockée la notion de client ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    dans les fichier csv il ya une colonne "numero client", donc ça sera le prix total des appel pour chaque numéro client

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu dois donc seulement parcourir tes fichiers comme tu le fais déjà et stocker tes résultats dans un tableau indexé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau[$client][$jour] += $valeur_de_la_ligne;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    merci sabotage pour cette proposition
    voila mon code actuel qui renvoie la somme de tous les fichier
    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
    <?php
     
     
    // path du dossier CDR 0 remplacer par le chemin correspondant lors de la mise du script sur le serveur
    $dir = "C:\Users\Master\Desktop\quotidien\CDRs";
     
    //Initialisation des variables
    $totals = []; // Equivalant array()
     
    // Ouvre un dossier bien connu, et liste tous les fichiers
    if (is_dir($dir)) {
      if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {  
          if( $file == '.' || $file == '..' ){
            continue;
         }
     
         $chaine=  substr($file, 8, -4);
         $compteur= $chaine ;
     
         // path a remplacer lors de la mise du script sur le serveur
         //fichier en entrée
         $inputFilePath = "C:\Users\Master\Desktop\quotidien\CDRs/entreprise_".$compteur.".cdr";
     
         $file = fopen($inputFilePath, 'r');
         $nLigne = 0;
         while (($line = fgets($file)) !== false) {
           if( ++$nLigne == 1 || $line == ''){ // Sauter la ligne 1
             continue;
         }
     
           $data = explode(';', $line);
           $numtel = $data[2];
           $prix = $data[8];
     
           if (!isset($totals[$numtel])) {
              $totals[$numtel] = $prix;
           } else {
             $totals[$numtel] += $prix;
           }
         }
     
         fclose($file);
        }
      }
     closedir($dh);
    } 
     
    if(!empty($totals)){
     // $totals aura une case par numtel et pour valeur le prix total de celui-ci
     foreach ($totals as $numtel => $total) {
      //echo "Prix total pour $numtel : $total".'</br>';
     }
    }
    ?>
    la variable $jour va prendre quoi comme entré ??

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La date prise dans le nom du fichier.
    C'est à peine différent de ce que tu fais déjà pour $compteur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    oui je peut le faire substr et extraire la date du jour sauf que aprés 31 jour le mois va changer dans le substr n'est plus valable et après 12 mois l’année va changer a son tour .
    c'est ce que je pige pas

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne comprends pas ton problème. Tu peux donner un exemple de nom de fichier qui n'irait pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    entreprise_20140708160113.csv
    entreprise_20140708160133.csv
    entreprise_20140708160143.csv
    entreprise_20140708160153.csv
    la date du fichier est les 8 premier caractères commençant par la gauche "20140708" cela correspond à 08 juillet 2014 et ainsi de suite, j'ai des fichier pour toute les jours jusqu’à aujourd’hui.

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et en quoi ton substr() ne fait pas le travail ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    enfin je comprend pas comment adapter la ligne que vous m'avez donner a mon code, je suis perdu je réfléchi a ça depuis 8h du matin et je vais dormir avec, je vois pas comment je vais lire le ficher csv avec un substr qui prend que la date du jour , la boucle va tourner 31 fois puis c'est le mois qui va changer donc il faut un autre sub str pour selectionner le mois, puis l’année va changer et peut etre un autre substr qui sélectionne l'anné , je vais avoir plusieurs boucle !!!

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas de boucle, le jour vient directement du nom du fichier.

    Pour lire tous les fichiers, tu le fais déjà dans ton code il me semble non ? (même si c'est un moche)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    oui mais pour lire le jour du fichier, j'ai 31 jours pour le mois de janvier et 29 pour le mois de février et 31 pour le mois de mars ...........31 jours mois de decembre jusqu'a l’année aussi change par exemple de 2014 passe en 2015 et puis ca recommence 31 jours par janvier .........
    si j'ai qu'un seul mois c'est faisable mais la j'ai 12 mois

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne comprends rien du tout à ce que tu dis.
    Dans ton fichier "entreprise_20140708160113.csv", la date du jour c'est 20140708. Il n'y pas de boucle à faire ni de dernier jour du mois à prendre en compte.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 43
    Points : 40
    Points
    40
    Par défaut
    en tous cas merci vos tentatives, il ya pas mal de développeur interne de l'entreprise en essayé de la faire sans sucées, ce matin le responsable à dit que peut être il va confié le script à une agence de développement. La logique du script est pas facile à comprendre.
    je vous remercie

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    S'il y a une difficulté je ne la comprends vraiment pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  2. [MySQL] Importer un csv avec un script php
    Par helkøwsky dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/06/2012, 11h56
  3. Script php Menu deroulant utitlsant du CSV
    Par Jerem38 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 25
    Dernier message: 18/05/2009, 16h16
  4. Réponses: 2
    Dernier message: 06/12/2007, 15h11

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