Souci de date() en php

Résolu
Bonjour les amies ! Comment allez vous ?

Je vous adresse ce message car je rencontre un petit souci, j'ai mis en place sur mon site un petit module Php qui me permet d'afficher le dernier article ajouté, ces articles "les news du moment" sont affichés pendant 3 jours après ça une petite phrase indiquent qu'il n'y a pas d'actualité pour le moment, le problème est que cette fameuse phrase ne s'affiche pas.

J'ai fait un article le 01/11/2016 que j'ai posté sur le site cela fait plus de 3 jours que l'article et faits mais mon code PHP m'affiche toujours celui-ci comme étant la dernière news du moment, alors qu'il ne devrait pas.

Voici le code php :

<?php

// Connection base de donnée
include 'config/connexion.php';

//juste après la connexion
mysql_query("SET NAMES 'UTF8'");


$time=time();

//3 jours en seconde
$limit=$time-259200;

//création de la requête SQL:
$sql = "SELECT * FROM wp_accueil WHERE wp_date > '$limit' ORDER BY wp_date DESC LIMIT 1 ";

//exécution de notre requête SQL:
$requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );

if ($result = mysql_fetch_object($requete))

{

echo '<table border="0">';
echo '<tr>';
echo '<td><img src="../images/icones-pack/news.png" height="18" width="18" alt="image_news"></td>';
echo '<td valign="middle" width="150"><b>News du Moment :</b></td>';
echo '<td valign="middle">< [ <font color="yellow">'.mysql_real_escape_string(html_entity_decode($result->wp_titre)).'</font> ] / ></td>';
echo '</tr>';
echo '</table>';

}

else

{

echo '<table border="0">';
echo '<tr>';
echo '<td valign="middle"> <font color="yellow">< [ </font> Pas de nouvelles actualitées pour le moment ...  <font color="yellow"> ] /> </font></td>';
echo '</tr>';
echo '</table>';

}

?>


Pourriez-vous m'aider ? En vous remerciant d'avance

1 réponse

  1. Modérateur
    Bonjour,

    Commence par faire un echo de ta variable $sql puis sert t'en pour tester la requete DIRECTEMENT dans ta BDD (via phpmyadmin par exemple)
    Regarde si le résultat obtenu te semble bon ou non....

    Ensuite... si tu ne trouves pas la cause du problème .. peux tu nous donner la structure de ta table ? (plus précisément... le type utilisé pour ton champ date )

    Sachant qu'en MYSQL il existe la possibilité de faire une requête utilisant
    DATE_ADD(NOW(), INTERVAL -3 DAY)
    

    http://www.w3schools.com/Sql/func_date_add.asp

    .
    0
    1. Merci pour ta réponse, alors voici la structure de la table concerner :

      http://img4.hostingpics.net/pics/958893sitetable.png

      Ensuite il s'agit d'une base de données de type MYSQL
      0
    2. Modérateur
      @Noel-barbuDonc la solution proposée en utilisant DATE_ADD et INTERVAL devrait faire l'affaire
      0
    3. Comment puis-je procéder Jordane45 vous auriez un exemple avec cette fonction, je n'ai jamais utilisé celle-ci d'ailleurs.

      $time=DATE_ADD(time());

      ais-je bon ? Ou plutôt dans la requête je présume ?
      0
    4. Modérateur
      @Noel-barbuDans la requête... vu que c'est une fonction mysql.
      De plus, je t'ai mis un lien....... tout y est expliqué !
      0
    5. @jordane45bonjour,

      ahh oui ok merci encore !
      0