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 :

foreach et trie par date à partir d'un XML


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 98
    Points : 39
    Points
    39
    Par défaut foreach et trie par date à partir d'un XML
    Bonjour,
    pour un système d'événements je récupère des infos d'un fichier xml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $itemList = $dom->getElementsByTagName('sit_liste');
    foreach  ($itemList as $item)  {.... }
    Je voudrai faire un trie des événements par date, date que je récupère et affiche en php depuis le xml de cette façon dans mon foreach )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        $debut = $item->getElementsByTagName('DATE_DEBUT');
       $debut = $debut->item(0)->nodeValue;
        echo ' Le : '.$debut.''."\n";
        .....
    Comment intégrer un trie par (depuis le foreach ?) date qui est au format 13/02/2016 ? usort mais comment si c'est avec cette fonction ? Sinon quelle solutions ai-je ?

    Merci

  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 peux placer toutes tes données dans un tableau PHP avec en plus la date au format AAAAMMJJ et faire un array_multisort() pour trier selon cette valeur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 98
    Points : 39
    Points
    39
    Par défaut
    Merci pour ta réponse.
    donc actuellement j'ai ça :

    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
    $itemList = $dom->getElementsByTagName('sit_liste');
    foreach  ($itemList as $item)  
    { 
       $titre= $item->getElementsByTagName('TITRE_ACTU');
       $titre= $titre->item(0)->nodeValue;
       $descrip= $item->getElementsByTagName('DESCRIP_ACTU');
       $descrip= $descrip->item(0)->nodeValue;
       $image = $item->getElementsByTagName('IMAGE_ACTU');
       $image = $image ->item(0)->nodeValue;
       $debut = $item->getElementsByTagName('DATE_DEBUT');
       $debut = $debut->item(0)->nodeValue;
     
       echo $titre.'<br/>';
       echo $debut.'<br/>';
       echo $descrip.'<br/>';
       echo 'image : '.$image.'<br/><br/>' ;
    }
    qui me donne :

    VIDE GRENIER
    01/05/2016
    Cette année le vide grenier...
    image : videgmai.jpg

    COURSE VOITURE
    25/02/2016
    le 25 février aura lieu la course de voiture...
    image : coursevoit.jpg

    ...

    Comment je met tout ça dans le tableau et comment je ressort les données triées par date ?

  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
    ah c'est moi qui doit tout écrire ?
    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
     
    $data = array();
    $ordre = array();
    foreach  ($itemList as $item)  
    { 
       $titre= $item->getElementsByTagName('TITRE_ACTU');
       $titre= $titre->item(0)->nodeValue;
       $descrip= $item->getElementsByTagName('DESCRIP_ACTU');
       $descrip= $descrip->item(0)->nodeValue;
       $image = $item->getElementsByTagName('IMAGE_ACTU');
       $image = $image ->item(0)->nodeValue;
       $debut = $item->getElementsByTagName('DATE_DEBUT');
       $debut = $debut->item(0)->nodeValue;
     
       $objdate = date_create_from_format('d/m/Y', $debut);
       $date = $objdate->format('Ymd');
     
       $data[] = array('titre'=>$titre, 'descrip'=>$descrip, 'image'=>$image, 'debut'=>$debut);
       $ordre[] = $date;
     
    }
    array_multisort($ordre, SORT_DESC, $data);
     
    foreach($data as $values) {
       echo $titre.'<br/>';
       echo $debut.'<br/>';
       echo $descrip.'<br/>';
       echo 'image : '.$image.'<br/><br/>' ;
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 98
    Points : 39
    Points
    39
    Par défaut
    Merci pour ton aide précieuse mais au lieu d'avoir mes actus qui s'affichent j'ai juste un actu qui se répète semble t'il autant de fois qu'il y a d’événement dans le xml.

  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
    oups plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach($data as $value) {
       echo $value['titre'].'<br/>';
       echo $value['titre'].'<br/>';
       echo $value['descrip'].'<br/>';
       echo 'image : '.$value['image'].'<br/><br/>' ;
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [XL-2003] pb trie par date
    Par bebel9313 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/08/2009, 15h48
  2. Trie par date de modification
    Par Seta-san dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/03/2009, 21h15
  3. Problème de trie par date
    Par Filipegomes dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/01/2008, 04h28
  4. Trie par date
    Par rainlily dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/08/2007, 16h02
  5. Trie par date
    Par rainlily dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/08/2007, 14h28

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