Gestionnaire d'article avec catégorie

desperadosse Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   -  
desperadosse Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je vous expose mon problème, j'aimerai créer un gestionnaire d'article avec possibilité de les gerer par catégories.
J'ai un menu top, celui-ci comporte 5 liens. J'aimerai donc créer 5 catégorie différente pour que je puisse gérer ces 5 pages avec leur contenu différent.
Mais (il y a toujours un mais ^^)
Je ne sais pas du tout comment m'y prendre. Auriez-vous un liens tutoriel pour que je puisse créer ce gestionnaire avec des catégories.

Merci d'avance

Sincèrement Desperadisse

PS: M'envoyer le site du zero comme lien n'est pas nécessaire j'ai fait les recherche nécessaire avant de poster. Merci d'avance




9 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Il suffit de faire une simple requête SQL ...
Pour gérer les catégories, je te conseil de créer une table avec au minimum 2 champs :
- id (TINYINT, unsigned, AUTO_INCREMENT)
- nom (TINYTEXT ou (VAR)CHAR ou encore BLOB)

Dans la table des articles, il te faut un champ « cat_id » contenant l'id de la catégorie.

Pour afficher tes catégories, tu peux créer un script PHP « categorie.php » auquel tu passeras par GET l'id de la catégorie. Tu pourras ainsi lister tous les articles « WHERE cat_id = $_GET['id'] ».

Pour lister tes catégories :
<?php
$pdo = new PDO('mysql:host=localhost;dbname=ta_base','root','');

$sql = 'SELECT * FROM categories ORDER BY nom';
$req = $pdo->query($sql);

while($cat = $req->fetch()) {
    echo '<a href="categorie.php?id='.$cat['id'].'">'.$cat['nom'].'</a>';
}
$req->closeCursor();
?>
0
desperadosse Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci sincèrement de ton attention ^^. je vais me pencher la dessus. Dernière question. Comment fait tu pour que chaque catégorie s'attribue a chaque page. Par exemple categorie1 = page acceuil
categorie 2 = Contact
ect ..

merci d'avance avion-f16

Sincèrement Desperadisse
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Je ne comprends pas vraiment. Comment veux-tu associer des articles à une page de contacte ? C'est une page à part ...
0
desperadosse Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   7
 
Lol,
Chaque catégorie = une page principale
Dans cette catégorie il y aura des article ou des news.
Ce qui me permettra de modifier le contenu par page/article. ^^

Voila en gros, j'espere que tu comprendra lol
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Je te l'ai déjà expliqué :
« Pour afficher tes catégories, tu peux créer un script PHP « categorie.php » auquel tu passeras par GET l'id de la catégorie. Tu pourras ainsi lister tous les articles « WHERE cat_id = $_GET['id'] ».  »
Après tu peux utiliser l'url rewriting pour faire des URL du style « /categorie-3.html ». Ou tu peux même passer le nom de la catégorie : « /avions.html »
Mais il faudra ajouter un champ dans ta table pour avoir un format adapté pour les URL (par exemple pour « Développement Web » : « developpement-web »)
0
desperadosse Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   7
 
Avion-f16, je te presente mon code ...

Malheureusement il fait crasher mon serveur local xD.

Peut tu me dire si j'ai fait une erreur fatal a mon code.

Merci d'avance :

Code

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Untitled Document</title>
</head>

<body>

<?php
try
{
$pdo = new PDO('mysql:host=localhost;dbname=toututor','root','');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

$sql = 'SELECT * FROM categorie ORDER BY nom';
$req = $pdo->query($sql);

while($cat = $req->fetch())
{
    echo '<a href="categorie.php?id='.$cat['id'].'">'.$cat['nom'].'</a>';
}
$req->closeCursor();

if(isset($_GET['id']))
{
	if($_GET['id'] == $cat['id'])
	{
		$liste = $pdo->query('SELECT * FROM contenu WHERE id = ' . $_GET['id']);
		while($article = $liste->fetch())
		{
			echo '<p>Titre' . $article['titre'] . '| Contenu: ' . $article['contenu'] . '</p>';
		}
		$liste->closeCursor();
	}
	
}

else

{
header('location:categorie.php');
}


?>

</body>
</html>



Merci d'avance
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Il ne t'indique pas à quelle ligne se trouve l'erreur ?
0
desperadosse Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   7
 
En faite j'ai trouver ^^, regarde le else xD
Si y'a une erreur il fait une redirection vers categorie.php
Le problème c'est que l'erreur est rafraichi a chaque fois xD donc en gros sa tourne en boucle et sa fait crasher le serveur comme un boucle infinie ^^
0
desperadosse Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   7
 
J'ai une autre question ... (Je sais je suis chiant --')
J'ai un problème avec une liste déroulant.
Je t'explique le principe, créer une page d'ajout d'article en choisissant la categorie parmis une liste deroulante. J'ai réussi à afficher le nom des categories mais j'aimerai maintenant faire un $_GET de l'id via cette liste deroulante.
En gros quand j'ecris l'article j'ai un titre, un contenu, et l'id de la categorie choisi.
J'ai un <form> qui cible la même page. J'ai fait sa :

Voici la page ajout_news.php:

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Untitled Document</title>
</head>

<body>
<?php 
include('configuration.php');

$req = $pdo->query('SELECT * FROM categorie ORDER BY id');



?>
<form action="ajout_news.php" method="post">
<input type="text" name="titre" /><br/>
<input type="text" name="contenu"  /><br/>
<select name="categorie" size="1">
	<?php 
	
			while($categorie = $req->fetch())
			{
			?>
<option value="<?php echo 'ajout_news.php?id=' . $categorie['id']; ?>">
			<?php echo $categorie['nom'] ;?>
</option>
			<?php
            }
			?>	
</select>

<input type="submit" value="Envoyer" />
</form>

<?php include('ajout_news_post.php'); ?>


</body>
</html>


Voici la page ajout_news_post.php:

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Untitled Document</title>
</head>

<body>
<?php
include('configuration.php');

if(isset($_GET['id']))
{

	if(isset($_POST['titre']) AND isset($_POST['contenu']))
	{
	$req1 = $pdo->prepare('INSERT INTO contenu (titre, contenu, date_creation, categorie) VALUES (?, ?, NOW(), ?)');
	$req1->execute(array($_POST['titre'], $_POST['contenu'], $_GET['id']));
	echo 'News Enregistrer';
	}
	else
	{
	echo'ERREUR';
	}
}
else
{
	echo'Pas d\"identifiant categorie';
}
?>
</body>
</html>



Merci d'avance Sincèrement Desperadisse
0