petite question sur requete mysql

Eléphant du PHP | 319 Messages

18 nov. 2007, 21:03

hello,

je souhaiterais faire une requete dans ma base qui ressemble a ca:
$query = (" SELECT fname, lname 
			FROM clients 
			WHERE newsletter_1 = '1'
			AND points < '5000'
			AND points_offered < 'points_offered + (31*24*60*60)'
			");
en bref:
je souhaite recuperer les noms et prenoms des clients etant inscrits a la mailing list, qui ont moins de 5000 points sur leur compte et qui n'ont pas recu de points depuis au moins un mois. le tout afin de leur donner des points en plus.

je bute sur la derniere partie. je ne sais pas trop comment amener ca en sql.
mon champs est points_offered (c'est une date UNIX).

comment je fais pour comparer cette date avec la date actuelle et si points_offered est plus ancien qu'un mois selectionner ces clients?

merci :)
niveau: pas terrible en php mais je me soigne...

Eléphant du PHP | 319 Messages

18 nov. 2007, 21:09

je pensais a qq chose du genre:

Code : Tout sélectionner

aujourd'hui - points_offered >= 2678400
je vais voir si je trouve qq chose do genre TODAY en mysql...
niveau: pas terrible en php mais je me soigne...

Eléphant du PHP | 185 Messages

18 nov. 2007, 21:15

Je crois savoir qu'en SQL la fonction CURRENT_DATE permet de récupérer la date du jour... Je n'en sais pas beaucoup plus à ce sujet, mais ça peut être une piste ! :wink:

Eléphant du PHP | 319 Messages

18 nov. 2007, 21:15

bon:

ca ca ne passe pas:

Code : Tout sélectionner

AND UNIX_TIMESTAMP() - points_offered >= '2678400
salut kaoteknik.
je check dans sur le site de mysql si ca peut marcher avec current_date() tout de suite.
niveau: pas terrible en php mais je me soigne...

Eléphant du PHP | 185 Messages

18 nov. 2007, 21:16

Je ne sais pas si ça pourra t'aider, mais de ce côté il y a peut-être une réponse à ta question :

http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html

Eléphant du PHP | 319 Messages

18 nov. 2007, 21:30

les fonctions en elles meme n'ont pas ete utiles (car je bosse sur le timestamp UNIX) par contre la syntaxe a ete claire :)

ca marche avec cette syntaxe:

Code : Tout sélectionner

(UNIX_TIMESTAMP()-points_offered) >= '2678400'
merci!

ps: je devrais peut etre virer le chiffre pour un "timestamp - 1 mois" ...
niveau: pas terrible en php mais je me soigne...