Création d'un tableau avec contenu dynamique

Contenu du snippet

Bonjour,

Voici un petit code qui permet de créer un tableau avec du contenu dynamique dans les cellules.
Je m'explique dans mon exemple j'ai pris le cas des animes, un anime possède plusieurs genre.
Donc le script va créer la ligne du tableau et va la compléter avec tous les genres qu'il possède.

je souhaiterai avoir l'avis d'autres personnes.

Source / Exemple :


//Fichier SQL

--
-- Structure de la table `anime`
--

CREATE TABLE IF NOT EXISTS `anime` (
  `id_anime` int(11) NOT NULL,
  `nom_anime` varchar(200) DEFAULT NULL,
  `type_anime` varchar(200) DEFAULT NULL,
  `nb_episode` varchar(200) DEFAULT NULL,
  `annee_prod` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id_anime`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Structure de la table `appartenir_genre`
--

CREATE TABLE IF NOT EXISTS `appartenir_genre` (
  `id_anime` int(11) NOT NULL DEFAULT '0',
  `nom_genre` varchar(200) NOT NULL DEFAULT '',
  PRIMARY KEY (`id_anime`,`nom_genre`),
  KEY `nom_genre` (`nom_genre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Structure de la table `genre`
--

CREATE TABLE IF NOT EXISTS `genre` (
  `nom_genre` varchar(200) NOT NULL,
  `description_genre` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`nom_genre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

//Fichier PHP

<?php
//Connexion a la BDD
	require 'content/m_cnx.php';
	cnx_bdd();
// On recupere le(s) episode(s) de l'anime
	$rqt_anime = "  SELECT anime.id_anime, nom_anime, nom_genre, type_anime, nb_episode, annee_prod
					FROM anime left join appartenir_genre
					ON anime.id_anime=appartenir_genre.id_anime
					ORDER BY nom_anime, id_anime, nom_genre";
	$rqt_anime = mysql_query($rqt_anime)or die (mysql_error());
?>
<table>
	<tr>
		<td>Titre</td>
		<td>Genre</td>
		<td>Nb</td>
		<td>Type</td>
		<td>Année</td>
	</tr>
<?php
	$cpt = 0;
	$eps = '';
	$eps1 = 0;
	$table = '';
	$contenu = '';
	$genre = '';
	$type = '';
	$nb_eps = '';
	$annee = '';
while($anime = mysql_fetch_assoc($rqt_anime))
{
	if($eps!=$anime['id_anime']) //Nouvelle ligne car nouveau anime
	{
		if($cpt%2==0)
		{
			echo '<tr class="CouleurFond1"><td>'.$contenu.'</td><td>'.$genre.'</td><td>'.$nb_eps.'</td><td>'.$type.'</td><td>'.$annee.'</td></tr>';
		}
		else
		{
			echo '<tr class="CouleurFond2"><td>'.$contenu.'</td><td>'.$genre.'</td><td>'.$nb_eps.'</td><td>'.$type.'</td><td>'.$annee.'</td></tr>';
		}
		$nom_anime = $anime['nom_anime'];
		$id = $anime['id_anime'];
		$genre = $anime['nom_genre'];
		$type = $anime['type_anime'];
		$nb_eps = $anime['nb_episode'];
		$annee = $anime['annee_prod'];
		$contenu = "<a href='index.php?page=AnimeFiche&id=$id'><span>$nom_anime</span></a>";
		$cpt++;
	}
	else //Même anime que précedament alors on continu sur la même ligne
	{
		$genre.= ' | '.$anime['nom_genre'];
	}
	$eps = $anime['id_anime'];
}
if($cpt%2==0)
{
	echo '<tr class="CouleurFond1"><td>'.$contenu.'</td><td>'.$genre.'</td><td>'.$nb_eps.'</td><td>'.$type.'</td><td>'.$annee.'</td></tr></table>';
}
else
{
	echo '<tr class="CouleurFond2"><td>'.$contenu.'</td><td>'.$genre.'</td><td>'.$nb_eps.'</td><td>'.$type.'</td><td>'.$annee.'</td></tr></table>';
}
?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.