Création d'un tableau avec contenu dynamique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 088 fois - Téléchargée 17 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

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
338
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
4 janvier 2011

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

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
2
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

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.