Comment selectionnerles membre d'un groupe et les afficher sur une page dans phpboost ?
Selection des membre de la base de donnée
Discussions Générales
Sympa Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre Sympa
- Inscrit le : 23/08/2018
- Site internet
Voici mon problème:
Sur mon site, j'ai créé plusieurs groupe pour les membres( groupeA, groupeB, groupeC, etc)
Je voudrais ecrire un script php qui me permettra d'envoyer un message( mail ) à tous les membres d'un groupe particulier.
Le script aura donc accès a la base de donnée pour récuperer les mail des membres de la catégorie definie et leur enoyer le mail.
Par exemple:
Envoyer "Hello" dear member of groupeA,..;
J'espère que vous m'avez compris.
Merci de me conseiller et de m'orienter.
Édité par Sympa Le 26/06/2019 à 23h58
janus57 Membre non connecté
- Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
- Equipe Assistance
dans ce cas il suffit de requêter la BDD (PREFIXE_group) pour avoir la liste des groupes/membres puis de faire une jointure pour avoir son mail.
Cordialement, janus57
Sympa Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre Sympa
- Inscrit le : 23/08/2018
- Site internet
Quelques soucis encore:
1-Quelle fichier dois-je inclure dans mon script pour avoir accès à la BD dans mon script php ?
2-J'ai essayé cette requête pour avoir la liste des membres qui sont dans mon équipe:
Code SQL :
SELECT g.members Idmembres, m.display_name NomMembres, m.email EmailMembre FROM phpboost_group g INNER JOIN phpboost_member m ON m.user_id=g.members AND g.name="Equipe"
Et j'ai ce résultats:
Qui n'est pas ce que je voulais; en effet il n'as renvoyé que le premier membre du groupe "Equipe" alors que moi je voulais toute la liste.
Merci pour votre aide et bonne journée.
Édité par Sympa Le 27/06/2019 à 07h20
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Le requête devrait être plutôt ça
Code SQL :
SELECT m.user_id, m.display_name, m.email, m.groups, g.name FROM phpboost_member m JOIN phpboost_group g ON g.id = m.groups WHERE g.id = 1
Explication:
- On sélectionne l'user_id du membre son pseudo, et son group, puis ensuite o sélectionne les noms des groupes, on fait une jointure dans la table groupe pour que l'id du groupe assigné au membre correspond à un groupe existant (ici le groupe = 1), puis on fait un WHERE m.groups = g.id <= Donc quand le groupe du membre égal l'id du groupe dans la bdd.
Remplace g.id = 1 <= Remplace cette valeur par l'id du groupe que tu veux.
Édité par Myster Le 27/06/2019 à 08h54
Sympa Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre Sympa
- Inscrit le : 23/08/2018
- Site internet
J'ai essayer votre code mais ça ne marche pas? Cela me produit le même résultats (alors que je veux tous les membres d'un groupe dnnée, sql renvoie la première personne qu'il trouve et laisse les autres.)
Je pense que la difficulté vient du fait que le champ "groups" dans la table phpboost_member contient des valeurs de la forme:
1 | 2 |10 comme illustrée ci-dessous.
Ce qui fait que fait
Code SQL :
ne marche pas...... g ON g.id = m.groups ...
PS: J'ai copié collé votre code et changé l'id selon le groupe que je voulais.
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
xela Membre non connecté
- Modérateur
- Voir le profil du membre xela
- Inscrit le : 26/12/2015
- Groupes :
- Equipe Rédaction
vous pouvez éventuellement utiliser l'opérateur LIKE :
WHERE g.name LIKE '%equipe%'
Code SQL :
SELECT m.user_id, m.display_name, m.email, m.groups, g.name FROM phpboost_member m JOIN phpboost_group g WHERE g.name LIKE '%equipe%'
Cordialement,
Xela.
Édité par xela Le 27/06/2019 à 16h23
Sympa Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre Sympa
- Inscrit le : 23/08/2018
- Site internet
Le code m'envoie toute la liste des membre du site.
A moins qu'il n'y une autre methode;
veuillez m'éclairer sur le fichier à inclure dans mon code php pour pouvoir acceeder à la base de donner.
PS: Au lieu d'envoyer de mail aux membres, je vais plutôt afficher le message(que je vais récupérer dans ma BD) sur une page et autoriser seulement ceux qui sont dans le groupe souhaité.
Donc comment faire pour avoir accès à la BD dans mon script ?
xela Membre non connecté
- Modérateur
- Voir le profil du membre xela
- Inscrit le : 26/12/2015
- Groupes :
- Equipe Rédaction
Vous pouvez essayer avec :
Code SQL :
SELECT m.user_id, m.display_name, m.email, m.groups, g.id, g.members, g.name FROM phpboost_member m JOIN phpboost_group g WHERE g.name = 'nomdugroupe' AND m.groups = g.id
Ce code fonctionne .
Cordialement,
Xela.
Édité par xela Le 28/06/2019 à 11h11
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie