Page 1 sur 1

[Résolu] Afficher le bon texte en fonction jour.

Posté : 29 déc. 2011, 18:47
par Nathan-971
Bonjour,
J’ai un code, il afficher un texte différent chaque jour, tout est déjà dans une BDD (365 textes pour 365 jours, classés par date et par mois). Mais le problème quand le mois est terminé, au lieu d’afficher les textes du mois suivant, il affiche les textes du mois passé, donc toujours les mêmes textes peu importe le mois. Est-ce quelqu'un peu me modifier le script afin qu’il affiche le texte du jour en fonction du mois et du jour en cour ?
Merci

<?php 

//Variable simple
$jour = DATE("d"); 
$mois = DATE("m");
$annee = DATE("Y");

$texte = "Texte du $jour/$mois/$annee";


//Connexion a la BDD
mysql_connect("localhost", "root", "");
mysql_select_db("spurgeon");
//Requéte
$sql = "SELECT * FROM spurgeon WHERE jour=$jour AND mois=mois ";
$sql = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());   
$row = mysql_fetch_array($sql);
mysql_close(); //Fermeture de BDD


?>

Re: Afficher le bon texte en fonction jour.

Posté : 29 déc. 2011, 20:36
par Jim125
tu as oublié le signe dollar devant ta variable que tu as écrite comme le nom du champ.

$sql = "SELECT * FROM spurgeon WHERE jour=$jour AND mois=$mois ";

évite l'emploi de l'astérique * ça alourdit ta requête. ne ramène que le(s) champ(s) dont tu as besoin. par exemple:

$sql = "SELECT texte FROM spurgeon WHERE jour=$jour AND mois=$mois ";

Re: Afficher le bon texte en fonction jour.

Posté : 29 déc. 2011, 21:00
par sirakawa
en stockant dans la BDD non pas par mois et jour, mais simplement de 1 à 366 (années bissextiles prévues) et en utilisant:
date(z), ça simplifierait. Comme il y a de bonnes chances que ta BDD contienne des id numériques comme clef unique, ça devrait aller vite; sinon :
alter table citations add column (numero_jour INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (numero_jour));
et tu interroges par date (z)...

Re: Afficher le bon texte en fonction jour.

Posté : 30 déc. 2011, 00:40
par Nathan-971
Merci , tout fonctionne.