Page 1 sur 1

lister des évènements par date

Posté : 06 sept. 2012, 16:28
par zdaye
Bonjour,

j'aimerai afficher des évènements par date

du type :

2012-08-31
nom 1er event
nom 2nd event

2012-09-09
nom 3eme event
nom 4eme event

2012-09-21
nom 5eme event




je récupère de ma base :

Array(5) {
[0]=> array(6) {
["event_name"]=> string(33) "nom 1er event"
["event_start_time"]=> string(8) "16:00:00"
["event_end_time"]=> string(8) "18:00:00"
["event_start_date"]=> string(10) "2012-08-31"
["post_content"]=> string(550) ""
}

[1]=>array(6) {
["event_name"]=> string(33) "nom 2nd event"
["event_start_time"]=> string(8) "19:00:00"
["event_end_time"]=> string(8) "21:00:00"
["event_start_date"]=> string(10) "2012-08-31"
["post_content"]=> string(550) "content"
}

[2]=>array(6) {
["event_name"]=> string(33) "nom 3eme event"
["event_start_time"]=> string(8) "16:00:00"
["event_end_time"]=> string(8) "18:00:00"
["event_start_date"]=> string(10) "2012-09-09"
["post_content"]=> string(550) "content"
}

[3]=>array(6) {
["event_name"]=> string(33) "nom 4eme event"
["event_start_time"]=> string(8) "18:00:00"
["event_end_time"]=> string(8) "19:00:00"
["event_start_date"]=> string(10) "2012-09-09"
["post_content"]=> string(550) "content"
}


[4]=>{
["event_name"]=> string(33) "nom 5eme event"
["event_start_time"]=> string(8) "16:00:00"
["event_end_time"]=> string(8) "18:00:00"
["event_start_date"]=> string(10) "2012-09-21"
["post_content"]=> string(550) "content"
}

}

il faudrait que je puisse lister les événements par date.
J'imagine que je vais pouvoir le faire avec une double boucle, mais pour l'instant je n'arrive pas bien à comprendre.
Pouvez-vous m'aider ?

Re: parcou

Posté : 06 sept. 2012, 16:33
par sirakawa
Bjr,
un petit coup de ORDER BY dans la requête, ça n'irait pas?
http://dev.mysql.com/doc/refman/5.0/fr/ ... ation.html

Re: parcou

Posté : 06 sept. 2012, 16:40
par xTG
Comme l'a dit sirakawa un ORDER BY et tu as tout dans l'ordre que tu veux.
Il ne reste plus qu'à manipuler un flag pendant la lecture pour traiter le changement de date.
Exemple très simplifié :
$tableau = array(1, 1, 1, 2, 3, 3, 3, 3);
$flag = ''; // valeur qui ne peut exister dans le tableau
foreach($tableau as $val){
  if( $val != $val ){
    // nouvelle valeur détectée
    echo '<strong>Catégorie ' . $val . '</strong><br />';
    $flag = $val;
  }
  echo $val . ' <br />';
}
Catégorie 1
1
1
1
Catégorie 2
2
Catégorie 3
3
3
3
3

Re: lister des évènements par date

Posté : 06 sept. 2012, 17:11
par zdaye
Merci !!
ORDER BY c'était bon dans ma requête sql

je me noie dans un verre d'eau... fallait juste une condition ... un IF si simple


$flag = NULL; 

foreach( $monTableau as $row){
$date = $row['event_start_date'];

  if($date != $flag ){
    echo '<h2>' .$row['event_start_date'] . '</h2>';
    $flag = $row['event_start_date'];
  }
  echo '<h3>' .$row['event_name']. ' </h3>';

}
je suis content de mettre inscrit sur ce forum vous êtes vraiment réactif !!!!