Page 1 sur 1

afficher message si requête plus de 30 jours

Posté : 16 oct. 2020, 14:21
par ChrisCMoi62
Bonjour
J'ai fais une requête dont le résultat s'affiche dans un menu déroulant,
Je voudraic que ça indique "nouveau" pour les résultats de moins de 30 jours
Comment puis-je faire ?
<select>
<option value="">Sélectionnez</option>
<?
$requete= $bdd->query("SELECT * FROM MaTable WHERE champ=':champ' ORDER BY id ASC");
while ($data= $requete->fetch())
{
?>
<option value="(réf : <? echo $date["id"] ?>)"><? echo $data["nom"] ?></option>
<? } $requete->closeCursor(); ?>
</select>

Re: afficher message si requête plus de 30 jours

Posté : 16 oct. 2020, 14:24
par or 1
faire un test sur le champ adéquat de la table avec par exemple
https://www.php.net/manual/fr/datetime.diff.php

Re: afficher message si requête plus de 30 jours

Posté : 16 oct. 2020, 19:32
par ChrisCMoi62
J'ai essayé ça, ça me retourne bien le nombre de jours séparant les 2 dates, ceci dit, dans mon <select< <option> il ne tient pas compte des conditions et me met 'NOUVEAU' partout
<? $date1 = new DateTime($data['date']);
$date2 = new DateTime(date('Y-m-d'));
$diff = $date1->diff($date2)->format("%a");
$days = intval($diff);
if ($days<30) {
$new = "NOUVEAU";
}
?>
<option value="(réf : <? echo $date["id"] ?>)"><? echo $data["nom"] ?><? echo $new ?></option>

Re: afficher message si requête plus de 30 jours

Posté : 17 oct. 2020, 11:24
par ChrisCMoi62
C'est bon ça marche, je vous donne le code si ça peut aider quelqu'un :
Merci de votre aide

$date1 = new DateTime($data['date']);
$date2 = new DateTime(date('Y-m-d'));
$diff = $date1->diff($date2)->format("%a");
$days = intval($diff);
if ($days<30) {
$new = "NOUVEAU";
}
?>
<option value="(réf : <? echo $date["id"] ?>)"><? echo $data["nom"] ?><? echo $new ?></option>

Re: [RESOLU] afficher message si requête plus de 30 jours

Posté : 17 oct. 2020, 14:03
par or 1
c'est le même code. et sans un else pour le if, ou une initialisation de $new à '' à chaque début de la boucle, cela ne fonctionne pas correctement.