C'est exactement ça, macgawel : merci beaucoup pour ton exemple : super choix dans les titres des morceaux et des interprètes

. Effectivement, je veux que ma basse soit à la fois interrogeable morceau (lister tous les albums avec Mon beau sapin à l'intérieur), mais je veux aussi que l'on puisse afficher le contenu d'un ou de plusieurs CD d'un même artiste.
J'étais parti dans la même veine que ce que tu as décrit, à l'exception des clés étrangères. J'étais totalement passé à côté de cette notion, merci de l'info. Je l'ai mise en application, ça va m'être très utile. La seule chose qui ne fonctionne pas pour l'instant, ce sont les champs vides, lorsqu'on ne connaît pas l'artiste ou le titre d'un morceau. J'ai une erreur, mais ce n'est pas bien grave pour l'instant.
Jusqu'à présent, tout se passe bien. En revanche, j'ai un petit souci lorsque je veux afficher le contenu des CDs. J'ai fait une boucle pour l'afficher, le contenu se présente bien, sauf que chaque piste est référencée sur une ligne.
Je m'explique, voilà ce que j'obtiens sous forme de tableau. J'ai repris la fameuse playlist de macgawel :
Album..............|.N° de piste.|.Chanson.........|.Interprète
------------------------------------------------------------------
Best of Tino Rossi..|.1...........|.Petit papa Noël.|.Tino rossi
------------------------------------------------------------------
Best of Tino Rossi..|.2...........|.Petit papa Noël.|.Tino rossi
------------------------------------------------------------------
Les chant de Noël..|.1...........|.Petit papa Noël.|.Chantal Goya
------------------------------------------------------------------
Les chant de Noël..|.2...........|.Bécassine.......|.Chantal Goya
------------------------------------------------------------------
Les chant de Noël..|.3...........|.Petit papa Noël |.Chantal Goya
Et voilà ce que j'aimerais avoir :
Album................|.N° de piste.|.Chanson.........|.Interprète
------------------------------------------------------------------
Best of Tino Rossi.|.1...........|.Petit papa Noël.|.Tino rossi
.........................|.2...........|.Petit papa Noël.|.Tino rossi
------------------------------------------------------------------
Les chant de Noël..|.1...........|.Petit papa Noël.|.Chantal Goya
..........................|.2...........|.Bécassine.......|.Chantal Goya
..........................|.3...........|.Petit papa Noël |.Chantal Goya
Cette présentation deviendra particulièrement intéressante lorsqu'il faudra ajouter la couverture de l'album, par exemple : plutôt que de l'avoir pour chaque ligne, j'aimerai l'avoir pour chaque album.
j'ai essayé d'intégrer un GROUP BY dans mon SELECT, mais les du coup, ne sont affichées que les pistes 1 de chaque album.
Si le cœur vous en dit, voici mon code :
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$database = new PDO('mysql:host=localhost;dbname=mycd', 'chantal', 'goya');
$answer = $database->query('SELECT *
FROM pistes
RIGHT JOIN disques
ON pistes.id_disque=disques.id_disque
RIGHT JOIN chansons
ON pistes.id_chanson=chansons.id_chanson
RIGHT JOIN artistes
ON pistes.id_disque=artistes.id_artiste
');
echo '<table>';
echo '<tr><td>Album</td><td>N° de piste</td><td>Chanson</td><td>Interprète</td></tr>';
$color=1;
while ($data = $answer->fetch())
{
if($color==1){echo "<tr bgcolor='#AAAAAA'>"; $color=2;}
else {echo "<tr bgcolor='#CCCCCC'>"; $color=1;}
{
echo '<td>'. $data['nom_cd'].'</td>';
echo '<td>'. $data['id_piste'].'</td>';
echo '<td>'. $data['nom_chanson'].'</td>';
echo '<td>'. $data['nom_artiste'].'</td>';
echo '</tr>';
}
}
$answer->closeCursor();
echo '</table>';
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
Merci d'avance si vous avez une solution. Et surtout : bonnes fêtes de fin d'année à tous !!!
C'est exactement ça, macgawel : merci beaucoup pour ton exemple : super choix dans les titres des morceaux et des interprètes :lol:. Effectivement, je veux que ma basse soit à la fois interrogeable morceau (lister tous les albums avec Mon beau sapin à l'intérieur), mais je veux aussi que l'on puisse afficher le contenu d'un ou de plusieurs CD d'un même artiste.
J'étais parti dans la même veine que ce que tu as décrit, à l'exception des clés étrangères. J'étais totalement passé à côté de cette notion, merci de l'info. Je l'ai mise en application, ça va m'être très utile. La seule chose qui ne fonctionne pas pour l'instant, ce sont les champs vides, lorsqu'on ne connaît pas l'artiste ou le titre d'un morceau. J'ai une erreur, mais ce n'est pas bien grave pour l'instant.
Jusqu'à présent, tout se passe bien. En revanche, j'ai un petit souci lorsque je veux afficher le contenu des CDs. J'ai fait une boucle pour l'afficher, le contenu se présente bien, sauf que chaque piste est référencée sur une ligne.
Je m'explique, voilà ce que j'obtiens sous forme de tableau. J'ai repris la fameuse playlist de macgawel :
Album..............|.N° de piste.|.Chanson.........|.Interprète
------------------------------------------------------------------
Best of Tino Rossi..|.1...........|.Petit papa Noël.|.Tino rossi
------------------------------------------------------------------
Best of Tino Rossi..|.2...........|.Petit papa Noël.|.Tino rossi
------------------------------------------------------------------
Les chant de Noël..|.1...........|.Petit papa Noël.|.Chantal Goya
------------------------------------------------------------------
Les chant de Noël..|.2...........|.Bécassine.......|.Chantal Goya
------------------------------------------------------------------
Les chant de Noël..|.3...........|.Petit papa Noël |.Chantal Goya
Et voilà ce que j'aimerais avoir :
Album................|.N° de piste.|.Chanson.........|.Interprète
------------------------------------------------------------------
Best of Tino Rossi.|.1...........|.Petit papa Noël.|.Tino rossi
.........................|.2...........|.Petit papa Noël.|.Tino rossi
------------------------------------------------------------------
Les chant de Noël..|.1...........|.Petit papa Noël.|.Chantal Goya
..........................|.2...........|.Bécassine.......|.Chantal Goya
..........................|.3...........|.Petit papa Noël |.Chantal Goya
Cette présentation deviendra particulièrement intéressante lorsqu'il faudra ajouter la couverture de l'album, par exemple : plutôt que de l'avoir pour chaque ligne, j'aimerai l'avoir pour chaque album.
j'ai essayé d'intégrer un GROUP BY dans mon SELECT, mais les du coup, ne sont affichées que les pistes 1 de chaque album.
Si le cœur vous en dit, voici mon code :
[php]
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$database = new PDO('mysql:host=localhost;dbname=mycd', 'chantal', 'goya');
$answer = $database->query('SELECT *
FROM pistes
RIGHT JOIN disques
ON pistes.id_disque=disques.id_disque
RIGHT JOIN chansons
ON pistes.id_chanson=chansons.id_chanson
RIGHT JOIN artistes
ON pistes.id_disque=artistes.id_artiste
');
echo '<table>';
echo '<tr><td>Album</td><td>N° de piste</td><td>Chanson</td><td>Interprète</td></tr>';
$color=1;
while ($data = $answer->fetch())
{
if($color==1){echo "<tr bgcolor='#AAAAAA'>"; $color=2;}
else {echo "<tr bgcolor='#CCCCCC'>"; $color=1;}
{
echo '<td>'. $data['nom_cd'].'</td>';
echo '<td>'. $data['id_piste'].'</td>';
echo '<td>'. $data['nom_chanson'].'</td>';
echo '<td>'. $data['nom_artiste'].'</td>';
echo '</tr>';
}
}
$answer->closeCursor();
echo '</table>';
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
[/php]
Merci d'avance si vous avez une solution. Et surtout : bonnes fêtes de fin d'année à tous !!!