Aller au contenu

Prochaine réunion


Mumulafrite

Sujets conseillés

Bonjour,

je suis actuellement en train de faire un petit site pour une association et j'ai une petite question sur une petite requête à mettre en forme.

voici ce que je cherche à faire:

Afficher la prochaine réunion si la date n'est pas passée.

Si date passée, afficher "pas de réunion programmée"

voici mon code:


<?php
$db=connect_mysql();
$sql = "SELECT * FROM agenda ORDER BY id DESC";
$res = mysql_query($sql);
$tab=mysql_fetch_array($res);
?>
<p align="center"><span class="Style1"><?php echo format_date($tab['date']); ?> </span><span class="Style2">à</span><span class="Style1"> <?php echo $tab['heure']; ?></span><br />
<?php echo $tab['titre']; ?><br />
<?php echo $tab['lieu']; ?><br />

Merci d'avance pour votre réponse.

Lien vers le commentaire
Partager sur d’autres sites

Si ta date est enregistrée au format mysql (aaaa-mm-jj), c'est très simple :

<?php
$db = connect_mysql();
$sql = "SELECT * FROM agenda ORDER BY date DESC": // Il est plus logique de trier par date, non ? Si tu n'enregistres pas les évènements dans l'ordre, ils apparaîtraient ainsi triés.
$res = mysql_query($sql);
while($tab = mysql_fetch_assoc($res)) {
if(date('Y-m-d') < $tab['date'])
echo '<p align="center">La réunion est passée</p>';
else {
echo '<p align="center"><span class="Style1">'.format_date($tab['date']).'</span><span class="Style2">à</span><span class="Style1">'.$tab['heure'].'</span><br />'.$tab['titre'].'<br />'.$tab['lieu']'.<br /></p>';
}
}
?>

Par ailleurs, ton code HTML me semble un peu confus ... Tu pourrais sans doute utiliser des balises ou une hiérarchie plus parlante que "Style1" et "Style2" ;)

Lien vers le commentaire
Partager sur d’autres sites

Salut et merci pour ta réponse.

J'ai trouvé ca sur le net qui à l'air de fonctionner:


if (strtotime($date) < time()) {
echo "dépassé";
} else {
echo "il te reste du temps";
}

Qu'en penses tu?

Au fait c'est possible de repasser membre au lieu d'inactif je ne peux même plus modifier mon profil...
Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai essayer ton code et j'ai virer la boucle qui m'afficher tout et pas uniquement le dernier rendez vous.

Par contre maintenant j'ai un petit soucis, si dans ma base j'ai:

reunion 1 le 8 juin (dépassé)

reunion 2 le 14 juillet (à venir)

réunion 3 le 15 septembre (à venir)

il m'affichera à chaque fois la réunion 3 sachant que la 2 devrait être affichée.

Merci d'avance

$db=connect_mysql();
$sql="SELECT * FROM agenda ORDER BY date DESC"; // Il est plus logique de trier par date, non ? Si tu n'enregistres pas les évènements dans l'ordre, ils apparaîtraient ainsi triés.
$res=mysql_query($sql);
$tab=mysql_fetch_assoc($res);
if(date('Y-m-d') > $tab['date'])
echo '<p align="center">La réunion est passée</p>';
else {
echo '<p align="center"><span class="Style1">'.format_date($tab['date']).'</span><span class="Style2">à</span><span class="Style1">'.$tab['heure'].'</span><br />'.$tab['titre'].'<br />'.$tab['lieu'].'<br /></p>';
}
?>

Lien vers le commentaire
Partager sur d’autres sites

Dans ce cas, tu devrais modifier ta requête comme suit :

SELECT * FROM agenda WHERE date >= CURDATE() ORDER BY date ASC LIMIT 1

En gros, tu ne prends que les résultats dont la date est supérieure ou égale à la date du jour, tu les classes par date croissante et n'en prends que le premier.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...