Requete sur 2 tables avec champs commun
Salut, je fais un site sur des groupes musicaux avec leurs fiches respective
Mais j'ai aussi une autre partie de mon site où il y a des critiques d'albums
Bon voila j'ai 2 tables une "Groupes" et une autre "CriticCD"
Lorsque je questionne ma table Groupes, la fiche de celui ci se presente normalement
ET si celui-çi (le groupe en question) possède une critique sur un de ces disques, je voudrais faire un lien vers ces pages (la critique de son disque) . je sais je me repete mais c'est pour aider à la compréhension:oops:
(à savoir que ma page critique disque s'affiche bien avec un listing des disques repertoriées)
LE BUT EST DONC d'avoir la possibilité en étant sur ma fiche GROUPE
de cliquer sur un lien pour trouver sur une autre page la critique en question de son album bien
Mais comme chaques groupes repertoriés dans la base ne possede pas de critique disque IL FAUT QUE CE LIEN S'affiche suivant une condition...
J'ai plusieurs probs
- il me faut donc une boucle de style While... ou IF ...(puisque tous n'ont pas d'albums) et çà j'ai un peu du mal avec...:oops:
- il me faut utiliser (enfin , je pense et c'est pour ca que je fais appel a vous pro du dev')
une requete de type INNER JOINT puisque les 2 tables sont liées avec un champ commun et devant posseder la meme valeur
Ce champ est id_groupe qui portera différente valeur numerique que je lui attribuerai (tout en sachant que je mettrai la meme valeur quand un groupe possede une critique vers son disque
Groupes.id_groupe = CriticCD.id_groupe
et cela ne fonctionne pas
-----------------------
VOICI MES 2 TABLES
VOICI la structure de mes 2 tables
TABLE CriticCD
ChampTypeNullDéfautid int(11)Non critic_nom varchar(255)Non critic_titre varchar(255)Non critic_enonce textOui NULL critic_photo varchar(255)Oui NULL critic_promo char(3)Non id_groupe varchar(255)Non
TABLE Groupes
ChampTypeNullDéfautid int(11)Non nom varchar(255)Non localisation varchar(255)Non departement varchar(255)Non photo varchar(255)Oui NULL style varchar(255)Non bio textOui NULL email varchar(255)Non site varchar(255)Non promo char(3)Non disco textOui NULL lienmp3 varchar(255)Oui NULL id_groupe varchar(255)Non
Y a t'il une personne calée dans le domaine ?
pour voir peut etre rapidement OU mon code fait defaut ?
------------ QUE VOICI
<?php
$dbhost = "*******";
$dblogin = "********";
$dbpassword = "********";
$dbname = "*******";
$id = $_GET["id"];
$id_groupe = $_GET["id_groupe"];
mysql_connect($dbhost,$dblogin,$dbpassword);
mysql_selectdb($dbname);
$result=mysql_query("SELECT * FROM Groupes INNER JOIN CriticCD USING(id_groupe) WHERE id='$id'");
if ($row=mysql_fetch_array($result)) {
while($row['Groupes.id_groupe'] == $row['CriticCD.id_groupe'])
{
echo '<font class=texte>titre :</font> '.$row['critic_titre'].'" <br>'; break;
}
} else {
echo "Désolé, mais cette critique disque n'existe pas<br>";
} mysql_close();
?>
En esperant que vous ayez compris la chose...
Merci beaucoup pour votre aide
Bonne journée
requete sur 2 tables liées
Merci pour vos reponses
mais je suis encore debutant en php
Citation:
j'ai bien comprid sur ta page tu veut seullement savoir ceux qui ont des critique ou pas?
Non je veux afficher mes fiches groupes normalement
MAIS quand un des groupes possede une critique sur un de ces disques
Je veux afficher un lien dans cette conditions
qui emmenera sur sa fiche de son disque
pour les autres groupes le lien ne s'afficherai pas
Citation:
je pense que la structure de ta table n'est pas bonne(elle n'est pas normaliser je crois. si je me trompe dites le moi). il vaudrai mieux que tu mettes la clef primaire des ton groupes dans les critiques et non pas 2 champs identiques mais ta sollution n'est pas fausse
Question surement tres bête : la clef primaire (si c'est la solution) c'est quoi ?
--------
Code:
1 2 3 4 5 6
| <div style="text-align: left;">while($row['Groupes.id_groupe'] == $row['CriticCD.id_groupe'])
{
echo '<font class=texte>titre :</font> '.$row['critic_titre'].'" <br>';
break;
}</div> |
en fait j'essaye d'afficher ici la condition pour l'affichage d'un futur lien vers le titre du disque
le <a href...> n'est pas present
j'essaye ici juste d'afficher le titre, pour voir si çà marche...
J'ai 2 tables avec un champ commun (id_groupe) portant un numero
exemple : "ACDC" à un id_groupe de 001 et "Higway to Hell" a aussi un id_groupe de 001
donc comme les 2 id_groupes sont identiques mon lien devrait s'afficher