Afficher un événement en fonction de la date

Fermé
Reivax04 Messages postés 1 Date d'inscription vendredi 24 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014 - Modifié par Reivax04 le 24/10/2014 à 16:36
 Delphine - 25 oct. 2014 à 00:36
Bonjour à toutes et à tous,

Après avoir pas mal planché sur un petit problème, je viens quémander un petit peu d'aide :roll:

Explication :

Sur un de mes sites, les membres peuvent poster différents événement tout en précisant la date. Jusqu'à présent, la date était un simple renseignement que le membre remplissait et s'ajoutait dans ma base mais en tant que "TEXT". Donc pas de DATETIME.


<input type="text" size="2" name="jour" value="<?php echo $jour; ?>" />
<input type="text" size="2" name="mois" value="<?php echo $mois; ?>" />


Les événements sont alors affichés sur le site de façon toute bête.

$jour = nl2br(htmlentities(stripslashes($donnees['jour'])));
echo $jour;
?>/<?php
$mois = nl2br(htmlentities(stripslashes($donnees['mois'])));
echo $mois;

Et la sélection sur ma base de donnée était tout aussi simple :

('SELECT * FROM evenement ORDER BY mois DESC ,date DESC LIMIT 0, 20');

Mon problème vient du fait que je souhaite un peu changer le principe et afficher seulement les événement de la date actuelle. En gros ne sélectionner que les événements de la date "today".
J'ai donc réussi à faire cela de façon manuel :

('SELECT * FROM evenement WHERE jour = 24 AND mois = 10 ');


Evidemment je souhaite ne pas avoir à faire ça tous les jours mais que cela soit automatisé. Ma question est donc de savoir si je dois revoir entièrement mon formulaire en intégrant un DATETIME cette fois-ci, ou si il existe une solution plus simple.
J'avais comme idée par exemple d'exploiter les informations obtenues par un getdate(), mais je bloque.

J'en convient que la méthode est plutôt barbare, je reste encore un peu novice en comparaison à certain.
En vous remerciant d'avance pour vos réponses, je vous tiendrai informé de l'avancement. ;)

1 réponse

Bonjour,

je pense que si vous voulez avoir la liste des lignes dans votre table il faut faire une requête de ce style :

SELECT *
FROM `table_date`
WHERE date = DATE(NOW( ));


ATTENTION ! je crois que le format de vos date devra être du format yyyy-mm-dd
Dans ma requête j'ai récupérer la date d'aujourd'hui sans l'heure en faisant DATE(NOW( ))

Question : La date qui se situe dans votre table, correspond à quoi ?
Si la date correspond à la date du jour de la saisie sinon, il faut modifier la table en faisant :
ALTER TABLE `table_date` CHANGE `date` `date` DATETIME NOT NULL

Et pour ne pas avoir à saisir la date du jour à la main il faut mettre dans la requête sql insert into

<?php
$requete = "INSERT INTO TICKET(`id` , `datetime`, `autre_champ`)
VALUES( NULL , NOW() , '" . $autre_champ . "');";
?>

Voilà, à vous de jouer !
A +
1