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



--
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. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  2. 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
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Je ne comprends pas vraiment. Comment veux-tu associer des articles à une page de contacte ? C'est une page à part ...
    0
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  7. 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
  8. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Il ne t'indique pas à quelle ligne se trouve l'erreur ?
    0
  9. 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
  10. 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