Création d'un tableau avec contenu dynamique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 736 fois - Téléchargée 19 fois

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

Ajouter un commentaire Commentaires
kertimanoff Messages postés 75 Date d'inscription samedi 3 décembre 2005 Statut Membre Dernière intervention 30 juin 2013
19 août 2010 à 10:38
en fait ceci résume parfaitement toute ton histoire:

$rqt = mysql_query("select nom, prenom from unetable");
echo '';
while( $s = mysql_fetch_assoc($rqt) ) {
echo '----
'.$s['nom'].', '.$s['prenom'].', ';
}
echo '
';

waaaaw ! merci pour la source!
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
16 août 2010 à 16:31
Je rajouterais que la source n'est même pas la en totalité (on peut pas tester manque le fichier importé...)

Tu mélange traitement et affichage, tu pose des varchars de 200 en base.... posons des champs text aussi tiens ^^". Un nombre d'épisode en varchar comme ca on peut stocker ce que l'on veut (surement pour stocker le encours) c'est moche...

D'après le screen tu peux même avoir des doublons =(

Tu as du surement faire ca rapidement mais cela donne l'impression d'avoir été totalement bâclée. Je ne comprend du coup pas l'utilité de posté ce "morceau de source" (on peu pas l'exploiter en l'état et c'est mal fichu a mon goût...)
wanou95b Messages postés 23 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 5 juin 2009
14 août 2010 à 21:49
Niveau initié ! Ce script n'a rien d'exceptionnel ! Une banale requête sql, un affichage de tableau très basique... Pas grand chose à commenter effectivement, comme le fait comprendre STAY !
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
14 août 2010 à 08:51
Un avis sur quoi ?
tesniced Messages postés 3 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 15 février 2011
13 août 2010 à 22:09
pas de commentaire ?

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.