Problème requette mysql
AZdesign
-
AZdesign -
AZdesign -
Bonjour,
Je suis bloqué depuis quelques heures pour préparer une requete mysql et j'ai besoin de votre aide svp.
je m'explique :
j'ai créé une 3 tables :
1 - table user
- id_user
- login
- pass
2 - table projets :
- id_projets
- nom_projets
3 - droits
- id_user
- id_projets
Après avoir stocker l'id user de la table user dans une variable, je veux afficher les nom des projets de la table "projets" avec une WHERE droit.id_user = $id_user mais ca ne marche pas :(
j'ai essayé cette requete :
SELECT droits.id_user, projets.nom_projet FROM 'droits', 'projets' WHERE droits.id_user=$id_user
j'espère que c'est claire.
Je suis bloqué depuis quelques heures pour préparer une requete mysql et j'ai besoin de votre aide svp.
je m'explique :
j'ai créé une 3 tables :
1 - table user
- id_user
- login
- pass
2 - table projets :
- id_projets
- nom_projets
3 - droits
- id_user
- id_projets
Après avoir stocker l'id user de la table user dans une variable, je veux afficher les nom des projets de la table "projets" avec une WHERE droit.id_user = $id_user mais ca ne marche pas :(
j'ai essayé cette requete :
SELECT droits.id_user, projets.nom_projet FROM 'droits', 'projets' WHERE droits.id_user=$id_user
j'espère que c'est claire.
A voir également:
- Problème requette mysql
- Mysql community server - Télécharger - Bases de données
- Could not connect to mysql! please check your database settings! - Forum Redhat
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Access vs mysql - Forum Webmastering
2 réponses
Bonjour,
Le problème, c'est que tu as oublié de dire que la table projets est reliée par son id à la table droits.
Ta requête devrait plutôt être :
SELECT droits.id_user, projets.nom_projet FROM 'droits', 'projets' WHERE droits.id_user=$id_user AND droits.id_projets = projets.id_projets
Ou, c'est la même chose mais plus explicite à mon sens :
SELECT droits.id_user, projets.nom_projet
FROM droits
INNER JOIN projets ON droits.id_projets = projets.id_projets
WHERE droits.id_user=$id_user
Xavier
Le problème, c'est que tu as oublié de dire que la table projets est reliée par son id à la table droits.
Ta requête devrait plutôt être :
SELECT droits.id_user, projets.nom_projet FROM 'droits', 'projets' WHERE droits.id_user=$id_user AND droits.id_projets = projets.id_projets
Ou, c'est la même chose mais plus explicite à mon sens :
SELECT droits.id_user, projets.nom_projet
FROM droits
INNER JOIN projets ON droits.id_projets = projets.id_projets
WHERE droits.id_user=$id_user
Xavier
Merci beaucoup Xavier, j'ai utilisé ta requête en fin de compte
mais j'aimerai comprendre le principe si possible?
Cordialement,
Anas
mais j'aimerai comprendre le principe si possible?
Cordialement,
Anas
Bonjour,
Quand tu fais une requête croisée sur deux tables, le plus souvent, il y a un identifiant d'une table référencé dans l'autre table.
Le moteur SQL ne connaît a priori pas cet identifiant. Donc si tu fais une requête sur la table droits et sur la table projets, il ne sait pas qu'à un droit correspond un projet. Il va donc donner tous les projets pour chaque droit.
Il est donc nécessaire de lui expliquer que la colonne id_projets sert à relier les droits à un projet, d'où la ligne droits.id_projets = projets.id_projets.
Je ne sais pas si j'ai été suffisamment clair...
Xavier
Quand tu fais une requête croisée sur deux tables, le plus souvent, il y a un identifiant d'une table référencé dans l'autre table.
Le moteur SQL ne connaît a priori pas cet identifiant. Donc si tu fais une requête sur la table droits et sur la table projets, il ne sait pas qu'à un droit correspond un projet. Il va donc donner tous les projets pour chaque droit.
Il est donc nécessaire de lui expliquer que la colonne id_projets sert à relier les droits à un projet, d'où la ligne droits.id_projets = projets.id_projets.
Je ne sais pas si j'ai été suffisamment clair...
Xavier