requete multitables?

singer
Invité n'ayant pas de compte PHPfrance

26 mai 2005, 10:48

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.

Eléphanteau du PHP | 46 Messages

26 mai 2005, 10:54

la structure de votre 2 Tables SVP
L'informatique c'est ma vie

Mammouth du PHP | 859 Messages

26 mai 2005, 10:55

Il te suffit d'interroger la bdd en précisant la table et le champ :

Code : Tout sélectionner

SELECT * FROM table.champ

singer
Invité n'ayant pas de compte PHPfrance

26 mai 2005, 11:02

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

Mammouth du PHP | 859 Messages

26 mai 2005, 11:08

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.'';

singer
Invité n'ayant pas de compte PHPfrance

26 mai 2005, 11:15

merci beaucoup à vous deux :)

bonne journée

Eléphanteau du PHP | 46 Messages

26 mai 2005, 11:17

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 :)
Modifié en dernier par ZeRo[^L^]CoOOL le 26 mai 2005, 11:30, modifié 1 fois.
L'informatique c'est ma vie

singer
Invité n'ayant pas de compte PHPfrance

26 mai 2005, 11:19

argg, quand j'utilise cette requete, tous les albums (de tous les groupes ) s'affichent pour la fiche de chacun des groupes

Mammouth du PHP | 19672 Messages

26 mai 2005, 11:24

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>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

26 mai 2005, 11:30

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

Mammouth du PHP | 19672 Messages

26 mai 2005, 11:41

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

Code : Tout sélectionner

...WHERE `idgroupe` = ". $idgroupe .";
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: