Page 1 sur 1
requete multitables?
Posté : 26 mai 2005, 10:48
par singer
bonjour à tous
j'ai une base de données avec deux tables : album et groupe
je fais cette requete :
<?php
$sql = 'SELECT * FROM album WHERE idgroupe LIKE '.$idgroupe.'';
$req = mysql_query($sql) or die('Error!');
while ($data = mysql_fetch_array($req))
{echo "<tr><td class=\"album\">" . $data['nom_album'] . "</td>" .
"<td class=\"annee\">" . $data['annee'] . "</td>" .
"</tr>";}
mysql_close();
?>
pour afficher la liste des albums d'un groupe
j'aimerai afficher la photo correspondant à chaque album et je ne sais pas comment faire.
les images des albums sont stockées dans un dossier "albums" et ont pour nom le idalbum de la table album.
Posté : 26 mai 2005, 10:54
par ZeRo[^L^]CoOOL
la structure de votre 2 Tables SVP
Posté : 26 mai 2005, 10:55
par flitox
Il te suffit d'interroger la bdd en précisant la table et le champ :
Posté : 26 mai 2005, 11:02
par singer
voici la structure de mes tables
table album
idalbum
nom
annee
idgroupe
table groupe
idgroupe
nom
site
bio
flitox tu peux preciser stp ?
merci de votre aide
Posté : 26 mai 2005, 11:08
par flitox
Pour pouvoir lire des champs sur 2 tables dans la même requête, tu dois définir à quelle table appartiennent les différents champs :
En gros ça donnerait ça :
Code : Tout sélectionner
$sql = 'SELECT * FROM album, groupe WHERE groupe.idgroupe LIKE '.$idgroupe.'';
Posté : 26 mai 2005, 11:15
par singer
merci beaucoup à vous deux
bonne journée
Posté : 26 mai 2005, 11:17
par ZeRo[^L^]CoOOL
Bon votre poste est un peux floue mais bon j'éssaye de faire comme j'ai compris.
Si tu veut afficher la liste des groupes avec leurs album et pour chaque album sa photo:
<table>
<?
//liste des groupes
$groups=mysql_query("SELECT * FROM groupe");
while($groups_tab=mysql_fetch_array($groups))
{
echo "<tr> <td> Nom de la Groupe: ".$groups_tab["nom"]."</td><td><table width=100%>";
//liste des albums relative a chaque Groupe
$albums=mysql_query("SELECT * FROM album WHERE $idgroupe=".$groups_tab["idgroupe"];
while($albums_tab=mysql_fetch_array($albums))
{
//ici j'ai suposé que tous les fichiers on l'extension jpg
echo "<tr> <td> <img src='albums/".$albums_tab["idalbum"].".jpg'>
Nom de l'Album:".$albums_tab["nom"]."</td></tr>";
}
echo "</table></td></tr>";
}
?>
</table>
il va vous afficher tous les groups et pour chaque Groupe la liste des albums relative a ce dernier avec leurs images.
Bonne chance

Posté : 26 mai 2005, 11:19
par singer
argg, quand j'utilise cette requete, tous les albums (de tous les groupes ) s'affichent pour la fiche de chacun des groupes
Posté : 26 mai 2005, 11:24
par Cyrano
Il y a plusieurs erreurs dans le code montré:
<table>
<?
//liste des groupes
$groups = mysql_query("SELECT * FROM groupe");
while($groups_tab = mysql_fetch_array($groups))
{
echo "<tr> <td> Nom de la Groupe: ".$groups_tab["nom"]."</td><td><table width=100%>";
//liste des albums relative a chaque Groupe
$albums=mysql_query("SELECT * FROM album WHERE idgroupe = ". $groups_tab['idgroupe']);
while($albums_tab = mysql_fetch_array($albums))
{
//ici j'ai suposé que tous les fichiers on l'extension jpg
echo "<tr> <td> <img src=\"albums/".$albums_tab['idalbum'].".jpg\">Nom de l'Album:".$albums_tab["nom"]."</td></tr>";
}
echo "</table></td></tr>";
}
?>
</table>
Posté : 26 mai 2005, 11:30
par Invité
merci cyrano et ZeRo[^L^]CoOOL ça fonctionne.
pour la requete de flitox, au lieu de tenir compte de l'idgroupe et d'afficher les albums concernant un seul groupe, j'ai tous les albums. y a t il une erreur dans la requete?
ex pour le groupe xxx j'ai les albums de xxx + les albums de yyy
Posté : 26 mai 2005, 11:41
par Cyrano
Non, il n'y a pas d'erreur, mais pour un seul groupe, rajoute une clause WHERE dans la première requête, du genre