Création de la page catégorie

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.

Nous allons créer un nouveau fichier nommé "categorie.php" qui va nous permettre d'afficher l'ensemble des articles triés par catégorie. Cette page est à enregistrer également dans le dossier "creer-un-site-dynamique" !!

Dans un premier temps, nous allons éffectuer une requête permettant de récupérer le titre et la description des catégories afin de pouvoir les afficher dans les méta-tags du site ainsi que dans la balise <h1>.

<?php
//On récupère l'id transmit par l'url
$id_transmit=$_GET['id'];
if (!isset($_GET["id"]) OR !is_numeric($_GET['id'])){
	//Si la variable n'existe pas ou qu'elle n'est pas de type numérique, on redirige
	header('location:http://'.$_SERVER['HTTP_HOST'].'');
}
else{
	// on se connecte à la base de données
	include('connexion_bd.php');
	mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
	mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier connexion_bd.php.');
 
	//On va chercher le nom et la description de la catégorie
	$nom_categorie = mysql_query("SELECT nom_categorie,description_categorie FROM 
CATEGORIES WHERE id='"
.mysql_real_escape_string($id_transmit)."'"); while($cat = mysql_fetch_array($nom_categorie)) { $titre_categorie=$cat['nom_categorie']; $description_categorie=$cat['description_categorie']; } ?>

Cette première partie du code nous permet donc d'afficher la partie suivante :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/
DTD/xhtml1-strict.dtd"
> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr-fr">   <head>   <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> <title><?php echo $titre_categorie;?></title> <meta name="Description" content="<?php echo $description_categorie;?>" />   <link href="style.css" rel="stylesheet" type="text/css"/>   </head>   <body>   <div id="moncadre"> <?php include('menu.php');?>   <div class="cadrecentrale"> <h1>Cat&eacute;gorie "<?php echo $titre_categorie;?>"</h1>

Dans un second temps, nous allons chercher tous les articles qui correspondent à la catégorie selectionnée:

<?php 
//On va chercher tout ce qui rentre dans cette catégorie
$page = mysql_query("SELECT id,titre,description FROM CONTENU WHERE id_categorie='".
mysql_real_escape_string($id_transmit)."' ORDER BY id ASC");
//on voie si il y a quelque chose
if(mysql_num_rows($page) == 0)
{
//Si il n'y a rien, on informe le visiteur
echo '<div class="cadre">Aucun article pour le moment dans la catégorie '.$titre_catego
rie
.'.</div>'; } else { //On affiche les pages qui correspondent à la catégorie et en l'occurence le titre et
la description
while($affiche = mysql_fetch_array($page)) { echo '<div class="cadre">
<h2><a title="'
.$affiche['titre'].'" href="page.php?id='.$id=$affiche['id'].'
">'
.$affiche['titre'].'</a></h2>
<p>'
.$affiche['description'].'</p>
</div>'
; } //On ferme les else } } ?>

Puis on termine notre page :

</div>
 
<?php include('footer.php');?>
 
</div>
 
</body>
 
</html>

Inutile de commenter, puisque c'est quasiment tout le temps la même chose qui revient.

Voir/déposer un commentaire (21) | Signaler un problème