requete alerte

Nouveau WRInaute
Bonjour,

Mon cerveau étant très fatigué, je n'arrive pas à imaginer la requête sql qui m'aidera à faire une alerte mail sur un site de rencontres.

le topo, le voila :
--------------------

- Un internaute s'inscrit, et dans le formulaire il y'a plusieurs critères.

je voudrai faire une requête qui avertirait les autres membres de l'inscription de ce nouveau venu si ses critères correspondent aux leurs .

exemple :
-------------

- Le nouveau venu il est :
critère 1 : un homme
-----------

qui cherche :
critère 2 : une femme
-----------

Pour :
critère 3 : rencontre
-----------

Pays :
critère 4 : France
-----------

Département :
critère 5 : 75-Paris
-----------

Inscrit :
critère 6 : 19/03/2007
-----------



mon alerte consiste à avertir :

toutes les femmes qui cherche un homme pour rencontres qui habite la France et le département du 75 et qui ne sont pas inscrit le 19/03/2007.

En résumé les critères de ceux qu'il faut avertir de ce nouveau venu doivent être :

- son profil :
critère 1 : une femme
-----------

qui cherche :
critère 2 : un homme
-----------

Pour :
critère 3 : rencontre
-----------

Pays :
critère 4 : France
-----------

Département :
critère 5 : 75-Paris
-----------

Inscrit :
critère 6 : avant le 19/03/2007
-----------


merci de votre aide pour un commencement d'ébauche de requête :oops:
 
Nouveau WRInaute
Bonjour,

hmm ... c'est que ça dépend un peu beaucoup de la structure de ta BdD, du serveur de BdD, du langage de script ... !
Si il y a plusieurs tables impactées, des jointures ...

Si ce n'est qu'une table alors quelque chose comme
Code:
SELECT nom, prenom, mail FROM `tatable` WHERE sexe='femme' AND cherche='homme' AND type='rencontre' AND pays='france' AND dpt='75' AND dateinscription<'2007-03-19'
devrait faire l'affaire.

Mais il faudrait un peu plus de billes pour t'aider.
 
Nouveau WRInaute
Merci de m'avoir répondu, mais je crois je vais la faire en plusieurs requêtes .

j'ai une question sur le format des dates .

je reprend la programmation d'un site, le format de la date d'inscription des membres est entré au format time().

exemple dans la base de donnée un membre qui s'est inscrit le :
09/03/2007 s'écrit : 1173464020

si je veux faire une recherche par requête pour savoir qui s'est inscrit à cette date comme devrai-je faire ma requête ?

exemple :

SELECT user_id,username FROM membres where user_inscript='???????'";

merci de votre aide :oops:
 
Nouveau WRInaute
Bonjour,

Tu devrais regarder de ce coté :
Fonctions de date PHP : -http://fr.php.net/manual/fr/function.mktime.php
et
Fonctions de date MySql : -http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-types.html
 
Nouveau WRInaute
mal au crane :cry: , je reformule mon cas :
------------------------------------------------------

Bonjour à tous,

j'ai une question sur le format des dates .

je reprend la programmation d'un site, le format de la date d'inscription des membres est entré au format time().

exemple dans la base de donnée un membre qui s'est inscrit le :
09/03/2007 s'écrit : 1173464020

si je veux faire une recherche par requête pour savoir quelles sont les membres qui se sont inscris il y'a 11 jours (09/03/2007) comment devrai-je faire ma requête SVP ? :oops:

exemple :

SELECT user_id,username FROM membres where user_inscript='???????'";

J'ai regardé la doc mais c'est tellement compliqué, jai vu cet exemple mais ça ne marche pas !!

mysql> SELECT something FROM tbl_name
-> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;

merci de votre aide
 
Nouveau WRInaute
Bon j'ai fais ça, ça marche, mais bon je pense qu'il y'a une méthode beaucoup plus simple, à chercher !!

$dateaujoudhui = time(); // date d'aujourd'hui en format time
$datedepoo = "$dateaujoudhui" - 950400; // chercher la date de 11 jours en arriere.
ici 950400 correpond à 11 jours en format time
ceci sélectionnera tous les champs antérieurs à 11 jours
$datedepooo= substr($datedepoo, 0, 5); // je prends les 5 premiers chiffres qui représente je pense le jour, la date et l'année

SELECT user_id,username FROM membres where user_inscript like '$datedepooo%'

ça me renvoie tous les membres enregistrés le 09/03/2007

si qq1 a mieux je suis preneur . merci
 
WRInaute discret
Dans ton cas moumou il n'y a pas 50 solutions soit tu garde ton format en BDD et tu cherche en format time.
Soit tu change les dates de ta BDD et tu bosses avec le format que tu préfère.
C'est sur que c'est moins parlant ce format mais je vois pas trop ou est le prob.
 
Nouveau WRInaute
salut shelcko,

je garde ma base avec time() et je fais comme mentionné ci-dessus.

j'ai été voir comment dans phpbb ils ont fait car dans la basse de données la date est enregistré en time() et j'ai trouvé cela :

exemple :

Code:
	$search_time = time() - ( ( ( !empty($HTTP_POST_VARS['search_time']) ) ? intval($HTTP_POST_VARS['search_time']) : intval($HTTP_GET_VARS['search_time']) ) * 86400 );

un peu dans le même principe de ce que j'ai fait
 
Discussions similaires
Haut