Problème de requête SQL
Akyro
-
Yoan Messages postés 11905 Statut Modérateur -
Yoan Messages postés 11905 Statut Modérateur -
Bonjour,
Je vais essayer de vous expliquer clairement mon problème...
En gros je dispose de 2 tables (voir liens ci dessous)
table 1 (roster) : http://image.netenviesdemariage.com/images/1225469480ygixvrh.jpg
table 2 (down) : http://image.netenviesdemariage.com/images/122546966188354su.jpg
Prenons la table `down` la ligne 2... dans la colonne `boss` il y a "Boss2" et dans la colonne `participant` il y a la chaine de caractère "Eclyx,Taliya,Trishae" ...
Dans la table `roster` il y a 3 colonnes : id, nom et classe
J'aimerai faire une requête me permettant d'afficher pour un boss donné (Boss2) les membres qui y ont participé (Eclyx,Taliya,Trishae), mais d'une classe précise, exemple Chaman (Eclyx,Trishae)
Donc en gros ma requête dois me montrer pour `boss` = "Boss2" et `classe` = "Chaman" : Eclyx,Trishae
Et ça je n'y arrive pas ...
Voici la requête que j'ai faite :
$req_down = 'SELECT `participant` FROM `down` LEFT JOIN `roster` ON `participant` LIKE "%nom%" WHERE `classe` = "Chaman" AND `boss` = "Boss2"';
$result_down = mysql_query($req_down, $con);
list($participant) = mysql_fetch_row($result_down);
echo $participant;
Merci de votre aide.
Je vais essayer de vous expliquer clairement mon problème...
En gros je dispose de 2 tables (voir liens ci dessous)
table 1 (roster) : http://image.netenviesdemariage.com/images/1225469480ygixvrh.jpg
table 2 (down) : http://image.netenviesdemariage.com/images/122546966188354su.jpg
Prenons la table `down` la ligne 2... dans la colonne `boss` il y a "Boss2" et dans la colonne `participant` il y a la chaine de caractère "Eclyx,Taliya,Trishae" ...
Dans la table `roster` il y a 3 colonnes : id, nom et classe
J'aimerai faire une requête me permettant d'afficher pour un boss donné (Boss2) les membres qui y ont participé (Eclyx,Taliya,Trishae), mais d'une classe précise, exemple Chaman (Eclyx,Trishae)
Donc en gros ma requête dois me montrer pour `boss` = "Boss2" et `classe` = "Chaman" : Eclyx,Trishae
Et ça je n'y arrive pas ...
Voici la requête que j'ai faite :
$req_down = 'SELECT `participant` FROM `down` LEFT JOIN `roster` ON `participant` LIKE "%nom%" WHERE `classe` = "Chaman" AND `boss` = "Boss2"';
$result_down = mysql_query($req_down, $con);
list($participant) = mysql_fetch_row($result_down);
echo $participant;
Merci de votre aide.
A voir également:
- Problème de requête SQL
- Logiciel sql - Télécharger - Bases de données
- Erreur de requete facebook - Forum Facebook
- Jointure sql ✓ - Forum MySQL
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Android
- Problème de requête ✓ - Forum Java
3 réponses
Ta table down n'est pas en première forme normale (un champs contient plusieurs informations), fais plutôt une table participation(id,boss,#participant), ça te donnera ça : https://www.cjoint.com/?kFspOm7wTk
Ca permet ensuite de faire des jointures entre les tables.
Définie également proprement les clés de tes tables, pour chacune d'entre-elle, c'est id et id uniquement.
Ca permet ensuite de faire des jointures entre les tables.
Définie également proprement les clés de tes tables, pour chacune d'entre-elle, c'est id et id uniquement.
Ensuite ta requête c'est :
SELECT * FROM down d,roster r --Définition des alias WHERE participant='Eclyx' --Première sélection sur le premier critère AND classe='Chaman' --Seconde sélection sur le second critère AND d.participant=r.nom; --Jointure
Pour ce qui est des clé dans la table c'est bien ID qui est la clé primaire dans chaque table (c'est phpmyadmin qui souligne tout comme ça)
Ensuite j'avais vu quelque par une table comme ça avec plusieurs données dans la même case mais c'était basé sur une requête différente et ça marchai mais là c'est vrai que c'est "bizarre" ^^
En fait je veux faire une page qui me permet de crée un "down" .. l'admin rentre le nom du boss qu'il veut et en dessous il y aurai tout les membres du roster et il cocherai dans des checkbox les participants.
C'est pour cela que a la base j'avais plusieurs infos dans la même case mais avec ta solution c'est vrai que c'est plus simple mais si par exemple dans le futur je rajoute un membre dans le roster il s'ajoutera dynamiquement a la liste des membre avec sa checkbox correspondante pour la création d'un down ... mais alors la suite pour la requête d'insertion dans la table ça ne sera plus dynamique vu que la je devrai avoir une requête pour chaque checkbox non?
Ensuite j'avais vu quelque par une table comme ça avec plusieurs données dans la même case mais c'était basé sur une requête différente et ça marchai mais là c'est vrai que c'est "bizarre" ^^
En fait je veux faire une page qui me permet de crée un "down" .. l'admin rentre le nom du boss qu'il veut et en dessous il y aurai tout les membres du roster et il cocherai dans des checkbox les participants.
C'est pour cela que a la base j'avais plusieurs infos dans la même case mais avec ta solution c'est vrai que c'est plus simple mais si par exemple dans le futur je rajoute un membre dans le roster il s'ajoutera dynamiquement a la liste des membre avec sa checkbox correspondante pour la création d'un down ... mais alors la suite pour la requête d'insertion dans la table ça ne sera plus dynamique vu que la je devrai avoir une requête pour chaque checkbox non?
euh, je sais pas, je peux pas répondre à ta question, je sais pas ce que c'est les roster et les down, moi, mais une chose est sûre c'est que tu utilises ta solution ou une solution plus propre en 3FN, tu seras obligé dans les deux cas de modifier les deux tables (deux ajouts avec la 2nde solution, ou un ajout/un update avec ta solution).