Nouveau sujet Répondre Imprimer Syndication RSS 2.0

Php Différencier les nouveaux sujets des anciens sujets

Flammeche
Avatar de rickways
  • Age : 30 ans
  • Messages : 76
  • Inscrit : 11 Février 2007
  Lien vers ce message 07 Février 2008, 22:20
Bonjour à tous.

J'ai programmé un site de poésie, dans lequel les artistes postent leur poème.
J'affiche la liste des poèmes sur une page par ordre chronologique.
Pour l'afficher j'utilise le code suivant:

<?$req = 'SELECT * FROM poesieetpeinture, pdf_membre WHERE poesieetpeinture.auteur = pdf_membre.pseudo AND theme = "AMOUR ET SENTIMENTS" AND statut !=0 AND valid = 1 AND validimage=0 AND validmp3=0 ORDER BY id DESC LIMIT 8 ';
$n = 0;
$result = mysql_query($req) or die ('Execution de la sélection impossible');
while($liste = mysql_fetch_array($result))
	{
	$n = $n + 1;
		echo'
            <p style="line-height:100%; margin-top:2; margin-bottom:5;" align="left">
            <font face="Arial" size="2" color="black">
            &nbsp;
            <a href="poesielibrelespoemes.php?id='.$liste["id"].'"><b><u>'.$liste["titre"].'</u></b></a>
            &nbsp; de
            <i>&nbsp;'.$liste["auteur"].'</i>
            </font>
            </p>';
        }?>


J'aurais aimé ajouté à la fin des poèmes une petite image si le poème a été envoyé il y a moins de 15 jours. (en gros si le poème est nouveau une petite image "nouveau" s'affiche à la fin de la ligne.)
Mais si le poème est plus vieux rien ne s'affiche.

Je n'arrive pas à trouver comment faire cela, pourtant cela n'a pas l'air bien difficile.
Pourriez vous me donner des pistes pour faire cela,

je me doute qu'il faut mettre un today avec la date d'aujourd'hui en comparaison avec la date d'envoi, mais je ne sais pas comment gérer tout cela...

Merci d'avance

ERIC
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 07 Février 2008, 22:41
Salut,
tu dois un champ "temps" (ou le nom que tu veux) de type INT dans ta table des poésies. Lorsque tu ajoutes une poésie, lors du insert, tu utilises la fonction time() de PHP pour stoquer la date dans ce champ au moment de la création.

Et lors de l'affichage, tu feras un truc genre :
if ($list['temps'] > time() - (15 * 24 * 3600))
{
   echo 'nouveau poème';
}


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flammeche
Avatar de rickways
  • Age : 30 ans
  • Messages : 76
  • Inscrit : 11 Février 2007
  Lien vers ce message 07 Février 2008, 23:51
En ce qui concerne le champs de la date d'insertion du poème, datetime
est-ce possible avec ce format ?
ou dois-je ajouter un champs complémentaire ?
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 07 Février 2008, 23:55
C'est plus simple d'utiliser un timestamp je trouve (un INT), comme donné dans mon exemple.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Flammeche
Avatar de rickways
  • Age : 30 ans
  • Messages : 76
  • Inscrit : 11 Février 2007
  Lien vers ce message 08 Février 2008, 0:13
Genova,

Je parlais d'un datetime, car ma table et mes formulaires d'envoi sont déjà configurés ainsi.
Voici ma table:
Champ Type
id int(11)
titre varchar(100)
poeme text
auteur varchar(26)
datepoeme datetime
theme varchar(25)
liencomment text
lienimage varchar(100)
auteurimage varchar(100)
dateillustration datetime
validimage char(2)
lienmp3 varchar(100)
auteurmp3 varchar(100)
datemp3 datetime
validmp3 char(1)
valid char(1)
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 08 Février 2008, 2:51
Oui j'avais parfaitement compris, et c'est pour ça que je te disais qu'un INT était mieux, car un DATETIME necessite un peu plus de traitement pour le faire communiquer avec PHP, alors que la solution que je te propose est plus simple.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Volcan
Avatar de Spark
  • Messages : 1999
  • Inscrit : 24 Juin 2006
Message édité 2 fois, dernière édition par Spark, 08 Février 2008, 3:15     Lien vers ce message 08 Février 2008, 3:13
Dans ta requête sql tu ajoute :

SELECT id, titre, poeme, auteur, etc ...., DATEDIFF(NOW(), datemp3) AS NumberOfDays FROM

NumberOfDays retournera le nombre de jours qu'il y a entre maintenant et le datetime enregistré.


Mon site de jeux en réseau Hamachi :
http://www.jeux-reseau.fr
Le forum : http://forum.jeux-reseau.fr
http://img100.imageshack.us/img100/4097/voegelpc3jk2jx2kw4xg6.gif
 
Volcan
Avatar de Sékiltoyai
  • Age : 20 ans
  • Messages : 1034
  • Inscrit : 19 Septembre 2006
  Lien vers ce message 08 Février 2008, 11:00
Oui j'avais parfaitement compris, et c'est pour ça que je te disais qu'un INT était mieux, car un DATETIME necessite un peu plus de traitement pour le faire communiquer avec PHP, alors que la solution que je te propose est plus simple.

Oui mais le datetime te permet d'utiliser les fonctions de date de mysql.
Et un datetime est remplissable facilement en utilisant la fonction date()…


http://www.phpfrance.com : Support francophone PHP et Web.
http://sekil.labrute.fr/
 
Chef du projet FSB
Avatar de Genova
  • Age : 22 ans
  • Messages : 14520
  • Inscrit : 16 Septembre 2004
  Lien vers ce message 08 Février 2008, 12:01
Ca revient au même, c'est juste du chipotage.


Cause Im as free as a bird now, And this bird you can not change. - Freebird - Lynyrd Skynyrd
There's someone in my head but it's not me. - Brain damage - Pink Floyd
I said baby, you know Im gonna leave you. - Babe I'm gonna leave you - Led Zeppelin
Father ? yes son, I want to kill you - The end - The Doors
 
Répondre


.