Page 1 sur 1
selection multiple
Posté : 04 août 2008, 16:42
par astorn
Bonjour
J'ai une table contenant des annonces correspondant a un utilisateur.
J'aimerai savoir la condition de ma requête sql pour sélectionner que les utilisateur qui ont par exemple 3 annonces ou +
J'avoue que je sèche un peu sur la syntaxe
Merci d'avance
Re: selection multiple
Posté : 04 août 2008, 16:56
par _activmik
Salut,
Tu peux faire en SQL :
Code : Tout sélectionner
SELECT COUNT(DISTINCT id_annonce) AS compteur, nom_utilisateur FROM utilisateur, annonce GROUP BY nom_utilisateur;
Ca te donnera le nombre d'annonce par utilisateur.
Ensuite tu n'as plus qu'à "sélectionner les utilisateur qui ont par exemple 3 annonces ou +" grâce à la colonne "compteur". (je te cite parceque je n'ai pas compris si tu voulais faire le traitement en sql ou php)...
Posté : 04 août 2008, 17:03
par astorn
Tout d'abord merci de cette reponse rapide
En fait le but de ma requete et de recupere le nom des personnes qui ont 3 annonces pour leur envoyer un mail.
donc je souhaite faire du traitement php
Posté : 04 août 2008, 17:05
par hakazizi
il y a bin plus simple.
Code : Tout sélectionner
SELECT id_annonce,compteur, nom_utilisateur FROM utilisateur, annonce WHERE compteur=compteur>3 ORDER BY compteur ASC
ensuite tu n'as plus qu'as traiter les reponses.
je ne suis pas sur de l'orientation de>
Posté : 04 août 2008, 17:14
par _activmik
il y a bin plus simple.
Code : Tout sélectionner
SELECT id_annonce,compteur, nom_utilisateur FROM utilisateur, annonce WHERE compteur=compteur>3 ORDER BY compteur ASC
Oui, sauf que la colonne compteur est définie par le SELECT COUNT (DISTINCT xxx) de la requête que je lui ai donné.
Donc Astorn, pour le traitement php tu peux faire :
$sql = 'SELECT COUNT(DISTINCT id_annonce) AS compteur, nom_utilisateur FROM utilisateur, annonce GROUP BY nom_utilisateur';
$req = mysql_query($sql);
while ($row = mysql_fetch_array($req))
{
//tu fais un tri sur ceux qui ont plus de 3 annonces
if($row['compteur'] > 3)
{
//tu places ici ta fonction d'envoi de mail
}
}
Posté : 04 août 2008, 17:18
par hakazizi
il faudrais peut-etre le laisser reflechir un peu sinon il ne progressera pas...
Posté : 04 août 2008, 17:25
par astorn
merci a tous de ces réponses très rapide, specialement big thx a _activmik
Posté : 04 août 2008, 17:25
par _activmik
Je pense qu'étant donné qu'il connait son problème, le fait qu'on lui donne une solution va lui permettre de pouvoir confronter son problème, le resultat et le traitement.
C'est un petit coup de pouce qu'on lui donne, on lui fait pas son site non plus

Posté : 04 août 2008, 17:35
par zeus
Il ne manque pas la clause de jointure ?
Posté : 04 août 2008, 17:41
par _activmik
Exact, j'ai été trop vite, donc astorn si tu reviens par là :
Code : Tout sélectionner
SELECT COUNT(DISTINCT id_annonce) AS compteur, nom_utilisateur FROM utilisateur, annonce WHERE annonce.id_annonce = utilisateur.id_annonce GROUP BY nom_utilisateur;
annonce.id_annonce = ta clé primaire de la table annonce
utilisateur.id_annonce = ta clé étrangère dans ta table utilisateur qui fait référene à la clé primaire de la table annonce