Gestionnaire d'article avec catégorie

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



--
Je sais des chose que je ne sais pas , mais les chose que je ne savais pas ne seront pour moi que le début du savoir !!!

9 réponses

  1. 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
    1. 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
      1. Je ne comprends pas vraiment. Comment veux-tu associer des articles à une page de contacte ? C'est une page à part ...
        0
        1. 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
          1. 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
            1. 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
              1. Il ne t'indique pas à quelle ligne se trouve l'erreur ?
                0
                1. 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
                  1. 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