Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2528 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Quelle est la dernière sous-catégorie de cette caégorie?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quelle est la dernière sous-catégorie de cette caégorie?

n°1277868
polo7
Posté le 05-01-2006 à 22:56:10  profilanswer
 

Salut à tous,
J'ai créé un script de galeries d'images.
Ma table category contient les champs: id_cat, id_cat_up, title, date.
Le champ id_cat_up contient l'id_cat de la catégorie dans laquelle cette catégorie se trouve.
Exemple d'enregistrements de la table category:
12, 3, Animaux, 113299753
13, 12, Mammifère, 113299799
46, 12, Oiseaux, 113299888
54, 13, Loup, 113299953
55, 13, Ours, 113299999
 
J'aimerais connaître quelle est la dernière sous-catégorie ou sous-sous-catégorie de la catégorie 3 par exemple.
Le truc, c'est que des images se trouvent seulement au dernier niveau dans la hiérarchie.
En fait je souhaite afficher une image de la dernière catégorie ajouté.
Ici la dernière catégorie de la catégorie Animaux est Ours.
 
Comment y arriver, j'ai essayez avec une fonction qui est inclue dans elle même pour afficher l'arbre des ces catégories et sous-cat, ..., mais n'arrive pas de solution pour arriver à trouver la dernière cat.
 
Merci de votre aide.

mood
Publicité
Posté le 05-01-2006 à 22:56:10  profilanswer
 

n°1277877
Arjuna
Aircraft Ident.: F-MBSD
Posté le 05-01-2006 à 23:06:27  profilanswer
 

Vu le nombre de gens qui se sont lancés là-dedans ajourd'hui, ça sent bien le projet de milieu d'année :o
 
Z'êtes dans quelle école les gars ?
 
Avec Oracle, t'as la fonction "CONNECT BY ... PRIOR ..." qui permet de faire ce que tu veux. Avec un autre SGBD, à moins que la profondeur soit fixe, t'as pas d'autre moyen que de faire un PL/SQL ou un script côté PHP pour le savoir.

n°1277902
polo7
Posté le 05-01-2006 à 23:32:36  profilanswer
 

Pardon, j'oubliais, la BDD est MySQL.
La profondeur n'est pas fixe, elle peut aller de 1 à 20 peut-être, mais bon 20 c'est déjà pas mal.


Message édité par polo7 le 05-01-2006 à 23:33:46
n°1277912
Arjuna
Aircraft Ident.: F-MBSD
Posté le 05-01-2006 à 23:41:20  profilanswer
 

Ben donc t'es bon pour une boucle en PHP qui cherche la cat suivante, jusqu'à ce qu'il n'y aie plus de cat... C'est même une boucle récursive à priori.

n°1278157
polo7
Posté le 06-01-2006 à 13:28:04  profilanswer
 

Voici le script que j'utilise pour afficher la hiérarchie de mes catégories ainsi que la date de création, mais je n'arrive pas à afficher la liste de toutes les cat à la fin de ma page de manière à faire une liste et un tri par date et de récupérer la plus récente, une autre idée?
 
<?
$sql_server="localhost";
$sql_username="root";
$sql_password="";
$sql_database = "mabase";
 
$sql_link = mysql_connect($sql_server, $sql_username, $sql_password) or die('Impossible de se connecter au serveur');
$sql_select = mysql_select_db($sql_database);
 
$table_category = "category";
$table_images = "images";
 
$cats = mysql_query("SELECT * FROM $table_category WHERE id_cat_up='$id_cat' ORDER BY id_cat" );
     
function search_last_cat($n, $cat, $table_images, $id_cat_up_new, $cc, $date_all, $date_print, $date)
{
 echo "<ul>";
 $req_category = mysql_query("SELECT * FROM $cat WHERE id_cat_up='$n'" );
 
 $num_category = mysql_num_rows($req_category);
 for ($i = 0 ; $i < $num_category ; $i++)
   {
    $id_cat = mysql_result($req_category,$i,"id_cat" );
     $id_cat_up = mysql_result($req_category,$i,"id_cat_up" );
    $category = mysql_result($req_category,$i,"title_fr" );
    $date = mysql_result($req_category,$i,"date" );
         
    $requete = mysql_query("SELECT count(*) FROM $table_images WHERE id_cat='$id_cat'" );
    $nb_total=mysql_result($requete,0,"count(*)" );
     
    if ($nb_total > 0)
    {
     $date_print = $date;
     $date_all = "$date_all,$date";
    }
    else
    {
     $date_print = "";
    }
     
  echo "<nobr>";
    echo "<li>$id_cat $category <font class='txt2'>($nb_total)</font> - $date_print";
    echo "</nobr>";
     
    search_last_cat($id_cat, $cat, $table_images, $id_cat_up_new, $cc, $date_all, $date_print, $date);
 }
 echo "</ul>";
 
}
 
search_last_cat(0, $table_category, $table_images, $id_cat_up_new, 0, $date_all, $date_print, $date);
 
?>

n°1278164
gatsu35
Blablaté par Harko
Posté le 06-01-2006 à 13:41:27  profilanswer
 

<nobr> ? c'est quoi cette fausse balise HTML qui n'existe pas ?

n°1278217
omega2
Posté le 06-01-2006 à 14:52:07  profilanswer
 

gatsu > nobr existe ... en html 2.0 et en html3.2.
Elle est censé permettre l'affichage du texte en empéchant tout retour à la ligne.
 

Code :
  1. <nobr>je suis
  2. en plusieurs lignes</nobr>


donne donc  

Code :
  1. je suis en plusieurs lignes


 
Reste à savoir si cette balise est encore géré par les navigateurs actuels. (déjà du temps de l'html2 et 3.2, seuls IE et netscape la géraient)

n°1278673
polo7
Posté le 07-01-2006 à 13:24:51  profilanswer
 

Le nobr est parfois utile.
Mais bon ici ce n'est pas la question.
Ce script peut être utile à pas mal de monde pour afficher des catégories et sous catégorie, ... à l'infini.
Mais comment lister les catégories de dernier niveau, ça c'est plus difficile et je n'ai toujours pas de solution.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Quelle est la dernière sous-catégorie de cette caégorie?

 

Sujets relatifs
[résolu] Requete MySQL : problème d'affichage par catégorieprobléme compréhension ligne Php pour categorie?
Supprimer derniere ligne d un fichier sans le parcourSupprimer derniere ligne d un fichier sans le parcouri
afficher la derniere entrée peu importe la table ?!Aller à la derniere ligne d'un fichier texte et recherche chaine
Dernière mise à jour[ksh] Extraire la derniere colonne d'un fichier
[résolu]dernière occurence dans une feuille[PHP] - mysql - connaitre la derniere action sur une liste de tables
Plus de sujets relatifs à : Quelle est la dernière sous-catégorie de cette caégorie?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)