[PHP] Boucle

Fermé
xav' - 18 oct. 2004 à 15:31
 xav' - 19 oct. 2004 à 15:52
Bonjour,

J'ai un prob avec une base de donne sous mysql. J'ai en effet 3 tables dans ma database : 1 table film, 1 table acteur, et 1 table relation.

Le resultat est le suivant quand mon code s'execute :

TITANIC | Leonardo di caprio
TITANIC | Kate Winsley
TITANIC | Bily Zane
ROCKY | Sylvester Stallone
ROCKY | Talia Shire

Je souhaiterais eviter de repeter le film et avoir plutot le code suivant :

TITANIC | Leonardo di caprio, Kate Winsley, Bily Zane
ROCKY | Sylvester Stallone, Talia Shire

Quelqu'un peut-il me donner une solution a mon prob a partir de mon code? Merci d'avance...

Ci-dessous mon code :


//***********************************
<?php
//connexion database
$liendb = mysql_connect('localhost', 'root', '');

//selection database
mysql_select_db ('essai');

$sql = "SELECT titre_film,nom_acteur FROM film,acteur,relation where film.code_film=relation.code_film and relation.code_acteur=acteur.code_acteur";

$resultat = mysql_query ($sql);

echo "<table >";
echo "<tr>";
echo "<td>Titre<td>";
echo "<td>Acteur</td>";
echo "</tr>";

while ($listing = mysql_fetch_array ($resultat))
{
$titre = $listing['titre_film'];
$acteur = $listing['nom_acteur'];


echo "<tr>";
echo "<td>$titre</td>";
echo "<td>$acteur</td>";
echo "</tr>";

}
echo "</table >";

?>

//*********************************
A voir également:

2 réponses

Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 272
19 oct. 2004 à 13:18
Le mieux, à mon avis, c'est de tout mettre dans un tableau PHP et de traiter ensuite :


<?php
//***********************************
//connexion database
$liendb = mysql_connect('localhost', 'root', '');

//selection database
mysql_select_db ('essai');

$sql = "SELECT titre_film,nom_acteur FROM film,acteur,relation 
WHERE film.code_film=relation.code_film 
AND relation.code_acteur=acteur.code_acteur";

$resultat = mysql_query ($sql);

echo "<table >";
echo "<tr>";
echo "<td>Titre<td>";
echo "<td>Acteur</td>";
echo "</tr>";

while ($listing = mysql_fetch_array ($resultat)) {
    $Film[$listing['titre_film']][] = $listing['nom_acteur'];
}

// On peut éventuellement trier le tableau dans l'ordre alphabétique :
ksort($Film);

foreach($Film as $key => $value) {
  echo "<tr>";
  echo "<td>$key</td>";
  echo "<td>";
  $virgule = "";
  foreach($value as $key2 => $value2) {
      echo $virgule.$value?;
      $virgule = ", ";
  }
  echo "</td></tr>";
}
echo "</table >";

//*********************************

?>



                                   Jeff  \--Webmaster@CCM--/ 
0
Jean-François Pillou Messages postés 18707 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 272
19 oct. 2004 à 13:37
Plus propre :


<?php
//***********************************
//connexion database
$liendb = mysql_connect('localhost', 'root', '');

//selection database
mysql_select_db ('essai');

$sql = "SELECT titre_film,nom_acteur FROM film,acteur,relation 
WHERE film.code_film=relation.code_film 
AND relation.code_acteur=acteur.code_acteur";

$resultat = mysql_query ($sql);

echo "<table >";
echo "<tr>";
echo "<td>Titre<td>";
echo "<td>Acteur</td>";
echo "</tr>";

while ($listing = mysql_fetch_array ($resultat)) {
    $Film[$listing['titre_film']][] = $listing['nom_acteur'];
}

// On peut éventuellement trier le tableau dans l'ordre alphabétique :
ksort($Film);

foreach($Film as $key => $value) {
  echo "<tr>";
  echo "<td>$key</td>";
  echo "<td>".implode(",", $value)."</td>
  </tr>";
}
echo "</table >";

//*********************************

?>

                                   Jeff  \--Webmaster@CCM--/ 
0
Merci jeff. c cool et ça marche. Merci encore...
0