Requête utilisant timestamp qui ne marche pas :-(

Nouveau WRInaute
Bonjour à tous !

Je fais une requête afin de sélectionner dans la table 'annonces' les nouvelles annonces ayant été postées depuis la dernière visite.

La requete est la suivante :

$requete = mysql_query('SELECT * FROM annonces WHERE date>'.$pun_user['last_visit'].'') or die(mysql_error());

$pun_user['last_visit'] est la date de dernière visite sous forme de timestamp
la 'date' est insérée dans la BDD avec time() sous un format datetime.

Le problème est que malgré ma requête, TOUTES les annonces sont sélectionnées.
Lorsque je mets le signe égal ou inférieur, il n'y en a aucune. Je ne comprends pas !
 
Nouveau WRInaute
Bonsoir,

On dirait que l'erreur ne vient pas de la requête SQL mais plutôt de la logique utilisée dans la recherche.

Peux-tu nous donner des informations sur la structure de la table en question et des informations concernant ce que dois faire la requête ?

La requête est, en tout cas, correcte ^^

Cordialement
Mikiman
 
Nouveau WRInaute
la table en question est celle regroupant toutes les annonces de mon site d'avis de recherche.

j'ai mis en place sur le site un espace membre à partir du profil utilisateur de mon forum punbb, dans lequel existe la variable pun_user['last_visit'] qui est le timestamp de la dernière visite.

je veux créer une page "nouvelles annonces depuis la dernière visite", d'où cette requête :-)
 
WRInaute discret
Flora51 a dit:
$pun_user['last_visit'] est la date de dernière visite sous forme de timestamp
la 'date' est insérée dans la BDD avec time() sous un format datetime.
tu compares un timestamp (un entier donc) avec un format datetime (pas un entier)
donc forcément que la comparaison ne puisse se faire
dans ta reqûete, il faut que tu convertisses le champ date en entier

essaye ceci
Code:
$requete = mysql_query('SELECT * FROM annonces WHERE UNIX_TIMESTAMP(date)>'.$pun_user['last_visit'].') or die(mysql_error());
 
WRInaute discret
Flora51 a dit:
$pun_user['last_visit'] est la date de dernière visite sous forme de timestamp
la 'date' est insérée dans la BDD avec time() sous un format datetime.

Attention si je ne m'abuse les format timestamp et datetime sont différent
 
Nouveau WRInaute
jarreweb a dit:
Flora51 a dit:
$pun_user['last_visit'] est la date de dernière visite sous forme de timestamp
la 'date' est insérée dans la BDD avec time() sous un format datetime.
tu compares un timestamp (un entier donc) avec un format datetime (pas un entier)
donc forcément que la comparaison ne puisse se faire
dans ta reqûete, il faut que tu convertisses le champ date en entier

essaye ceci
Code:
$requete = mysql_query('SELECT * FROM annonces WHERE UNIX_TIMESTAMP(date)>'.$pun_user['last_visit'].') or die(mysql_error());

MAMAMIAAAAAAAAA
J'Y CROIS PAS !
CA MARCHE !!!!!!!!!!!!!!!!!
depuis le temps que je cherchais, je viendrai plus souvent sur ce forum :D

MERCIIIIIIIIIIIIIIIIIIIIIIII
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut