Classer des dates de concerts mois par mois

Résolu
gets7 Messages postés 13 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 26 février 2010 - 10 mars 2006 à 09:17
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 10 mars 2006 à 15:19
hello,
je dois faire un site pour mon groupe de musique et du coup me suis mis au php, pour le moment j'affiche les dates de concerts ainsi


28/03,
Jerez / Cadiz (es),
-,
[ Infos ]

29/03,
Almeria (es),
-,
[ Infos ]

30/03,
Valencia (es),
-,
[ Infos ]

31/03,
Zaragoza (es),
-,
[ Infos ]

01/04,
SAVIGNY-LE-TEMPLE (77),
- L'empreinte,
[ Infos ]

02/04,
REIMS (51),
- La cartonnerie,
[ Infos ]

03/04,
COLMAR (68),
- Le grillen,
[ Infos ]

04/04,
BOURGES (18),
- Emmetrop,
[ Infos ]

je souhaiterais un affichage de ce type:

Mars:
28/03,
Jerez / Cadiz (es),
-,
[ Infos ]

29/03,
Almeria (es),
-,
[ Infos ]

30/03,
Valencia (es),
-,
[ Infos ]

31/03,
Zaragoza (es),
-,
[ Infos ]

Avril:

01/04,
SAVIGNY-LE-TEMPLE (77),
- L'empreinte,
[ Infos ]

02/04,
REIMS (51),
- La cartonnerie,
[ Infos ]

03/04,
COLMAR (68),
- Le grillen,
[ Infos ]

04/04,
BOURGES (18),
- Emmetrop,
[ Infos ]

je pense faire un truc comme ça dans ma boucle d'affichage
vous pourriez m'aider un peu, je pense que dans ma boucle d'affichage je dois faire un while qui compare le mois , mais j'avoue que ça me dépasse un peu
merci

14 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2006 à 15:19
Ah putain oui, mea culpa ;-)
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2006 à 09:28
Hello,

tu les récupères d'où, ces infos ? On a besoin de cette précision, et si possible d'un petit bout de code, pour t'aider.
0
gets7 Messages postés 13 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 26 février 2010
10 mars 2006 à 09:43
voici le code
//connexion base
require("connect.php");

//requète$query "SELECT * FROM dates WHERE titre 'Incredible Tour 2006' ORDER BY id";
$result = mysql_query($query);
echo " Incredible Tour 2006
";
//boucle d'affichage du tableau
while ($row = mysql_fetch_array($result))
{


$id_print = $row['id'];
list($year, $month, $day) = explode("-", $row['date']);
$contenu = nl2br($row[contenu]);


echo "\";
echo \"----
\";
echo $lastmodified = \"$day/$month, \";
echo \"".$row[ville_pays].", \";
echo \"- ".$row[nom_salle].", \";
echo \"[ Infos ], \";

echo \"\n\";

echo "
";
}
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2006 à 09:56
Aau passage, pour des raisons de perf, il vaut mieux ne pas utiliser *, mais nommer tous les champs que l'on veut extraire, même si'il s'agit de TOUS les champs).

Ok donc tu as un champ 'date'. De quel type est-il ? S'il est de type datetime, c'est très facile :
SELECT tes champs FROM dates WHERE titre = 'Incredible Tour 2006' ORDER BY id, date
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gets7 Messages postés 13 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 26 février 2010
10 mars 2006 à 10:12
mon champ date est de type 'date' ;)


je souhaiterai juste faire une séparation automatiquement dès que l'on change de mois: plutôt que


01/02/06
06/02/06
01/03/06
09/03/06
11/04/06

j'aimerai
Février
01/02/06
06/02/06
Mars
01/03/06
09/03/06
Avril
11/04/06
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2006 à 10:32
Aaaahhh...

Je serais toi, je pense que je ferais ça en 2 étapes, avec un ajout pour le nom des mois :$aMonthNames array (1> 'janvier', 2 => 'février', etc...);
une requête pour récupérer tous les mois de ta base:
SELECT MONTH(date) FROM dates


Et tu stockes ça dans un tableau? UN TRUC DU GENRE /


$sQuery = 'SELECT MONTH(date) AS mois FROM dates';
$rReq = mysql_query ($sQuery) or die (mysql_error());
while ($aRes = mysql_fetch_assoc($rReq)) {
$aMois[] = $aRes['mois'];
}

Puis je bouclerais dessus pour faire ma requête :
foreach ($aMois as $mois) {
echo $aMonthName[$mois], '
'; $sQuery 'SELECT ce que tu veux FROM dates WHERE MONTH(date) \''.$mois.'\' ORDER BY id';
$rReq = mysql_query ($sQuery);
while ($res = mysql_fetch_assoc ($rReq)) {
// ton affichage
}
}
0
gets7 Messages postés 13 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 26 février 2010
10 mars 2006 à 10:41
je teste dès que j'ai 2 minutes
merci pour l'info!
0
gets7 Messages postés 13 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 26 février 2010
10 mars 2006 à 12:47
io,
alors j'ai fait ça, mais il m'affiche aucune variable:

<?php
require("connect.php");


$aMonthNames array (1> 'janvier', 2 => 'février', 3 => 'mars', 4 => 'avril', 5 => 'mai', 6 => 'juin', 7 => 'juillet', 8=> 'aout', 9=> 'septembre', 10 => 'octobre', 11=> 'novembre', 12 => 'decembre');



$sQuery = 'SELECT MONTH(date) AS mois FROM dates';
$rReq = mysql_query ($sQuery) or die (mysql_error());
while ($aRes = mysql_fetch_assoc($rReq)) {
$aMois[] = $aRes['mois'];
}
foreach ($aMois as $mois) {
echo $aMonthName[$mois], '
'; $sQuery 'SELECT * FROM dates WHERE MONTH(date) \''.$mois.'\' ORDER BY id';
$rReq = mysql_query ($sQuery);
while ($res = mysql_fetch_assoc ($rReq)) {


$id_print = $row['id'];
list($year, $month, $day) = explode("-", $row['date']);
$contenu = nl2br($row[contenu]);


echo "\";
echo \"----
\";
echo $lastmodified = \"$day/$month, \";
echo \"".$row[ville_pays].", \";
echo \"- ".$row[nom_salle].", \";
echo \"[ Infos ], \";

echo \"\n\";

echo "
";
}
}
?>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2006 à 13:10
A quel niveau ?
0
gets7 Messages postés 13 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 26 février 2010
10 mars 2006 à 13:46
hé bien il ne m'affiche que


[ Infos ]


/,
,
-,
[ Infos ]


/,
,
-,
[ Infos ]


/,
,
-,
[ Infos ]


/,
,
-,
[ Infos ]








avec une séparation qui ne correspond pas au changement de mois
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2006 à 14:13
Ah ben ouais...
while ($res = mysql_fetch_assoc ($rReq)) {

et

echo "<td class="texte-11">".$row[ville_pays]."</td>";
par exemple...

Remplace ton while :
while ($row= mysql_fetch_assoc ($rReq)) {

Tu as pris ma variable, mais tu n'as pas changé les tiennes... ;-)
0
gets7 Messages postés 13 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 26 février 2010
10 mars 2006 à 14:39
purée la honte ;)



bon, ça marche mais il m'affiche le contenu 6 fois de suite par mois
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2006 à 14:44
Ah, ça c'est génant.
C'est quoi qu'il t'affiche 6 fois de suite ? chaque contenu pour 1 mois ?
Tu as combien de mois dans ta base, à priori ?
(suffit de compter $aMois)
0
gets7 Messages postés 13 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 26 février 2010
10 mars 2006 à 15:12
bon, ça marche, j'ai changé la requète en

"$sQuery = 'SELECT DISTINCT MONTH(date) AS mois FROM dates';"



pour qu'il me compte qu'une fois le mois, merci encore!
0
Rejoignez-nous