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 :

Gérer des dates sur un site à partir d'un fichier CSV


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 037
    Par défaut Gérer des dates sur un site à partir d'un fichier CSV
    Bonjour,

    Si vous allez voir sur le site http://www.taloche.com/
    Vous verrez dans le coin à droite des dates des prochains spectacles.
    C'est gérer automatiquement par le site.
    Je sais que le gars il remplit juste un fichier csv qu'il met dans un dossier du site.
    Le site automatiquement affiche les deux dernières dates sure cette page et il peut avoir toutes les dates sur une autre page.
    Les dates qui sont passées ne sont plus affichées.

    Je voudrais faire la même chose est ce que quelqu'un sait me donner des idées, ou alors peut être qu'il y a des scripts (payant ou pas) tout fait qui existent ?

    Merci d'avance de votre aide.

  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
    Par défaut
    La lecture d'un fichier CSV c'est 3 lignes de code :
    http://fr.php.net/manual/fr/function.fgetcsv.php

    Pour la gestion des dates, c'est simplement comparer la date recuperée dans le CSV avec la date d'aujourd'hui.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 037
    Par défaut
    Merci mais pour moi c'est un peu plus compliqué.
    Je n'ai jamais fait ce genre de chose et donc....

    J'ai utilisé un script que j'ai réadapté à ma page, ça donne ceci :

    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
    <!-- BLOC AFFICHE corps -->
    <div class="art-layout-cell layout-item-1" style="width: 50%" >
     
    <?php
    $fichier = "dates/dates.csv";
    $fic = fopen($fichier, 'rb');
     
    echo '<table border="1">'."\n";
    while (($ligne = fgetcsv($fic, 1024)) !== FALSE) {
      echo '<tr>';
      foreach ($ligne as $champ) {
        echo '<td>'.$champ.'</td>';
      }
      echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    fclose($fic);
    ?>
    </div>
    C'est déjà un début puisque j'obtiens un tableau avec le contenu de mon CSV (fait avec Excell).

    Ce que j'obtiens c'est un truc comme ça :
    lundi 20 janvier 2014;Seraing;../affiches/hautestensions.jpg;20 h 30;0496 21 21 11;info@reservation.com;http://www.ticketnet.com
    mardi 28 janvier 2014;Seraing;../affiches/hautestensions.jpg;20 h 30;0496 21 21 11;info@reservation.com;http://www.ticketnet.com
    dimanche 2 f�vrier 2014;Bruxelles;../affiches/hautestensions1.jpg;21 h 00;0496 21 21 11;info@reservation.com;http://www.ticketnet1.com
    jeudi 6 mars 2014;Li�ge;../affiches/hautestension2s.jpg;16 h 00;0496 21 21 12;info@reservation.be;http://www.ticketnet2.com
    samedi 8 mars 2014;Namur;../affiches/hautestensions3.jpg;20 h 30;0496 21 21 13;info@reservation.net;http://www.ticketnet3.com
    dimanche 16 mars 2014;Ohain;../affiches/hautestensions4.jpg;15 h 00;0496 21 21 14;info@reservation.org;http://www.ticketnet4.com
    vendredi 28 mars 2014;Lasnes;../affiches/hautestensions5.jpg;20 h 00;0496 21 21 15;info@reservation.je;http://www.ticketnet5.com
    vendredi 4 avril 2014;Rixensart;../affiches/hautestensions6.jpg;19 h 30;0496 21 21 16;info@reservation.pc;http://www.ticketnet6.com
    samedi 12 avril 2014;Wavre;../affiches/hautestensions7.jpg;16 h 30;0496 21 21 17;info@reservation.ke;http://www.ticketnet7.com
    Du coup je ne sais pas trop comment séparer les champs pour classer su base de la date et pour comparer avec la date courante.
    Peux tu m'aider pour ça ?

    Merci.

  4. #4
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 037
    Par défaut
    Voilà ou j'en suis à 4 h du mat...
    Inutile de te dire que ça ne marche pas

    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
    <?php
    /*endroit ou est le fichier CSV*/ 
    $fichier = "dates/dates.csv";
    /*J'ouvre le CSV*/
    $fic = fopen($fichier, 'rb');
    echo '<table border="1">'."\n";
    while (($ligne = fgetcsv($fic, 1024)) !== FALSE) {
      echo '<tr>';
      foreach ($ligne as $champ) {
        echo '<td>'.$champ.'</td>';
      }
      echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    /*Je ferme le CSV*/
    fclose($fic);
     
    /*POUR COMPARER LES DATES*/
        $datejour = date('d/m/Y'); /*On met la date courante dans la variable datejour*/
        /*$datefin= ????????????????????; /*PN met la date de chaque ligne ici*/  
        // Avec explode on convertit les dates en format numerique*/
        $dfin = explode("/", $datefin);
        $djour = explode("/", $datejour);
        // ON inverse les dates pour avoir le format AAAAMMJJ.
        $finab = $dfin[2].$dfin[1].$dfin[0];
        $auj = $djour[2].$djour[1].$djour[0];
        // On compare les chiffres
        if ($auj>$finab)
        {
        /*la date est passée*/
        /*on ne fait rien*/
        }
        else
        {
        //-------Abonnement en cours-----
        /*on affiche la date et les collones qui suivent mais je ne sais pas encore comment.*/
        }
    ?>

  5. #5
    Membre éprouvé
    Homme Profil pro
    aux études mais 40 ans
    Inscrit en
    Juin 2004
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : aux études mais 40 ans

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 037
    Par défaut
    Et j'ai aussi essayé ceci :
    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
    <?php
    /*endroit ou est le fichier CSV*/ 
    $fichier = "dates/dates.csv";
    /*J'ouvre le CSV*/
    $fic = fopen($fichier, 'rb');
    echo '<table border="1">'."\n";
    while (($ligne = fgetcsv($fic, 1024)) !== FALSE) {
      echo '<tr>';
      foreach ($ligne as $champ) {
        echo '<td>'.$champ.'</td>';
      }
      echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    /*Je ferme le CSV*/
    fclose($fic);
     
    /*POUR COMPARER LES DATES*/
        // date à tester :
    $now = date("Y-m-d");
    $atester = "2010-02-02"; /* C'EST ICI QU'EST MON SOUCI, COMMENT EXTRAIRE LA DATE DU CSV AU BON FORMAT ET LA METTRE DANS LA VARIABLE ?*/
     
    // on formate les dates selon le format Ymd
    $now = new DateTime( $now );
    $now = $now->format("Ymd");
    $atester = new DateTime( $atester );
    $atester = $atester->format("Ymd");
     
    //et on test les deux dates
    if( $now < $atester ) {
     
    echo 'atester est dans le futur';
    } 
    else {
      echo 'atester est plus ancienne';
    }
    ?>
    Ca me semble plus clair mais comme indiqué en com dans le code je ne sais pas comment exploiter le CSV...

  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
    Par défaut
    Je pense qu'il te manque seulement le délimiteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (($ligne = fgetcsv($fic, 1024, ';')) !== FALSE) {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/02/2008, 18h21
  2. Récupérer des infos sur mes sites
    Par meufeu dans le forum Langage
    Réponses: 3
    Dernier message: 27/04/2006, 10h25
  3. Donner des suggestions sur le site Web en général
    Par kissmytoe dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 20/03/2006, 16h35
  4. Calcul des visites sur un site
    Par inferno66667 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/11/2005, 10h46
  5. Arborescence des sujets sur ce site
    Par Invité dans le forum Evolutions du club
    Réponses: 2
    Dernier message: 10/11/2004, 18h32

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