Afficher par catégorie

philclimb Messages postés 20 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 avril 2013 - 16 nov. 2008 à 12:53
philclimb Messages postés 20 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 avril 2013 - 22 nov. 2008 à 17:57
Bonjour;

Mon problème peut faire sourire mais je suis un peu en rade et un coup de main  ou plutôt de clavier-:)) serait super/
Voici:
Je stocke dans une BDD des articles (texte) et je veux dans un menu afficher des liens rangés par catégorie. J'arrive à trier par catégorie sans pb mais je voudrais que la catégoriue ne s'affiche qu'une seule fois au dessus de chaque groupe d'articles liés .

voici mon code:

<?php
   
//connexion a la BDD (modifier avec le bon fichier pour la mise en ligne!!!!!
include'../actus/PR/auth/secure/connect.php';
//include'PR/auth/secure/brancher.php';

//requête de la selection
$sql = "SELECT * FROM news ORDER BY cat DESC";

//envoie de la requete
$resultat = mysql_query($sql);

if ($resultat){

   
//recupération des données
    while($enregistrement = mysql_fetch_assoc($resultat)){
       
        $categorie=utf8_decode($enregistrement['cat']);
       
       
       
       
       

        echo"\";
        echo\"----
$categorie, \";
        //comment faire pour afficher les articles triés par catégorie sous le nom de chacune d'entre elle ? MERCI D'AVANCE !!!!
       
       
               
                $id = $enregistrement['id'];
                $lienNews= utf8_decode($enregistrement['titre']);
                $sujetF= utf8_decode($enregistrement['sujet']);
                echo\"----
\";
                echo\"";
                echo"$lienNews

";
               
               
       
                   
                   
        echo", \";
       
        echo\"\";
        echo"
";
       
    }
   
       
}else{
        echo"Erreur de selection des fiches de lecture.

";
        echo mysql_error();
}

    ?>

Merci d'avance
Philclimb

8 réponses

cs_rinuom99 Messages postés 91 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 21 septembre 2014 1
16 nov. 2008 à 14:44
bonjour,
t'as une seul table contient les catégories et les articles au même temps ??
philclimb Messages postés 20 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 avril 2013
16 nov. 2008 à 17:00
oui une seule table.
c'est essentiellement des petits textes types news mais à classer en différentes catégories.

Philclimb
cs_rinuom99 Messages postés 91 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 21 septembre 2014 1
16 nov. 2008 à 20:43
tu peux la divisé en deux table, une pour les catégorie, et une autre pour les news, de cette façon tu peux afficher la catégorie une seul fois, et ton base de donnée sera en 3FN
philclimb Messages postés 20 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 avril 2013
16 nov. 2008 à 22:21
j'aimerai conserver ça sur une seule table. ça m'arrange pour l'ajout et la modification des news.
Tu crois que ce n'est pas possible ?

Philclimb

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

Posez votre question
cs_rinuom99 Messages postés 91 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 21 septembre 2014 1
17 nov. 2008 à 08:22
bonjour,
non c possible,  mais juste pour simplifier les choses
cs_rinuom99 Messages postés 91 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 21 septembre 2014 1
17 nov. 2008 à 08:31
donc, y a une solution, mais je sais pas si elle est la meilleur,
tu peux utiliser un tableau, tu mis la résultat de la requête dans cat[i] et news[i] par exemple,  et a chaque fois tu testes si cat[i] = cat[i-1] t'affiche que news[i]

bon chance
philclimb Messages postés 20 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 avril 2013
22 nov. 2008 à 17:55
Au final j'ai crée une base catégorie.
Mais je n'arrive pas à afficher seulement les catégories qui ont des articles correspondant dans la base news.
Mon script affiche chaque categorie de la base categorie avec sous chacune d'elles la totalité de news !!!
Je patauge et je m'enlise . A l'aide !!!
Bon voici mon script :

<?php
   
//connexion a la BDD (modifier avec le bon fichier pour la mise en ligne!!!!!
include'PR/auth/secure/connect.php';
//include'PR/auth/secure/brancher.php';

//requête de la selection
$sql = "SELECT * FROM news ORDER BY cat DESC ";

//envoie de la requete
$resultat = mysql_query($sql);

if ($resultat){
   
//"mysql_fetch_assoc()" est similaire à "readdir()" pour le lecture de repertoire
    while($enregistrement = mysql_fetch_assoc($resultat)){
       
        $lienNews= utf8_decode($enregistrement['titre']);
        $sujetF= utf8_decode($enregistrement['sujet']);
        $date= $enregistrement['dateTitre'];
       
       
//id de la news
$id = $enregistrement['id'];

       
        //echo"$lienNews
";
        echo"";
        echo"$lienNews
  $sujetF";
        //echo"le : $date--&nbsp;";
        //echo"$sujetF
";
        //echo"Lire la suite >>
";
        echo"

";
       
    }
       
}else{
        echo"Erreur de selection news.

";
        echo mysql_error();
}

?>

PLUS QUE MERCI A CELUI OU CELLE QUI ME SORT DE LA !!!
Philclimb
philclimb Messages postés 20 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 avril 2013
22 nov. 2008 à 17:57
ERREUR JE n'ai pas mis le bon script !!!
VOICI LE BON :
<?php
   
//connexion a la BDD
include'../actus/PR/auth/secure/connect.php';

//requête de la selection
$sql = "SELECT * FROM categorie ORDER BY id ASC";

//envoie de la requete
$resultat = mysql_query($sql);

if ($resultat){

   
//recupération des catégorie
    while($enregistrement = mysql_fetch_assoc($resultat)){
       
        $categorie=utf8_decode($enregistrement['cat']);
       
       
       
       
       

        echo"\";
        echo\"----
$categorie, \";
        //recupération des articles
        $sql_2 = \"SELECT * FROM news ORDER BY id ASC\";
        $resultat_2 = mysql_query($sql_2);

if ($resultat_2){

        while($enregistrement_2 = mysql_fetch_assoc($resultat_2)){
        //$categorieNews correspond au classement des articles dans la BDD news
                $categorieNews=$enregistrement_2['cat'];
                if($categorieNews=$categorie){
               
                $id = $enregistrement_2['id'];
                $lienNews= utf8_decode($enregistrement_2['titre']);
                $sujetF= utf8_decode($enregistrement_2['sujet']);
               
               
                echo\"$lienNews

\";
               
               
       
                   
                   
       
        echo\"</td>\";
               
               
        echo"
";
       
    }
    }
    }
       
       
       
        }
       
}

    ?>
   
Excuses pour ce mauvais post
Philclimb
Rejoignez-nous