Problème pour associer deux table

Par Tortue33, il y a 14 ans


Bonjour,
Pouvez-vous m'aider car je n'arrive pas a faire une requête SQL qui marchequi lie les deux?
J'aimerai lier deux Tables "membres" qui est déja en place et "roles" qui comme champs (id, name, slug, level)
Je voudrai faire comme dans le tutoriel PHP : Gérer des Permissions mais sans passer par PDO.

Voila ma requete pour la table "membre".

$result = sqlquery("SELECT COUNT(membre_id) AS nbr, membre_id, membre_pseudo, membre_mdp FROM membres WHERE
                membre_pseudo = '".mysql_real_escape_string($_POST'pseudo'])."' GROUP BY membre_id", 1);

Merci

7 réponses

djtec, il y a 14 ans

Et bien utilise left join pour ajouter ta table roles

Tortue33, il y a 14 ans

comme ça?

$result = sqlquery("SELECT COUNT(membre_id) AS nbr, membre_id, membre_pseudo, membre_mdp, role_id, roles.name, roles.slug, roles.level FROM membres LEFT JOIN roles ON membres.role_id=roles.id WHERE
                membre_pseudo = '".mysql_real_escape_string($_POST'pseudo'])."' GROUP BY membre_id", 1);

Je ne comprends pas bien la requête d'origine de mon premier message. j'ai jamais utilisé le left join.
merci pour m'avoir repondu :)

djtec, il y a 14 ans

Oui c'est ça. Tu as essayé?

Tortue33, il y a 14 ans

oui mais je récupère pas les champs de la tables "roles".
Je trouve ça (membres.role_id=roles.id) un peu bizarre, j'ai copier sur un tutoriel sans le comprendre vraiment.

djtec, il y a 14 ans

Et avec ceci:

$result = sqlquery("
    SELECT COUNT(m.membre_id) AS nbr, m.membre_id, m.membre_pseudo, m.membre_mdp, m.role_id, r.name, r.slug, r.level 
    FROM membres AS m
    LEFT JOIN roles AS r ON m.role_id = r.id 
    WHERE m.membre_pseudo = '".mysql_real_escape_string($_POST'pseudo'])."'
    GROUP BY m.membre_id
", 1);
Tortue33, il y a 14 ans

Moi j'avais fait ça:

$result = sqlquery("SELECT COUNT(membre_id) AS nbr, membres.membre_id, membres.membre_pseudo, membres.membre_mdp, membres.role_id, roles.id, roles.name, roles.slug, roles.level FROM membres LEFT JOIN roles ON roles.id=membres.role_id WHERE
                membre_pseudo = '".mysql_real_escape_string($_POST'pseudo'])."' GROUP BY membre_id", 1);//------------------------------------------------------------------------------------------------------------------TEST
Tortue33, il y a 14 ans

Bon c'est super les deux codes marche nikel :)
Un grand merci!! djtec