[RESOLU] lister des évènements par date

Petit nouveau ! | 4 Messages

06 sept. 2012, 16:28

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 ?
Modifié en dernier par zdaye le 06 sept. 2012, 16:54, modifié 1 fois.

Mammouth du PHP | 2278 Messages

06 sept. 2012, 16:33

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
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
xTG
ViPHP | 7331 Messages

06 sept. 2012, 16:40

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

Petit nouveau ! | 4 Messages

06 sept. 2012, 17:11

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 !!!!