Quelle est la dernière sous-catégorie de cette caégorie? - PHP - Programmation
Marsh Posté le 05-01-2006 à 23:06:27
Vu le nombre de gens qui se sont lancés là-dedans ajourd'hui, ça sent bien le projet de milieu d'année
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.
Marsh Posté le 05-01-2006 à 23:32:36
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.
Marsh Posté le 05-01-2006 à 23:41:20
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.
Marsh Posté le 06-01-2006 à 13:28:04
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);
?>
Marsh Posté le 06-01-2006 à 13:41:27
<nobr> ? c'est quoi cette fausse balise HTML qui n'existe pas ?
Marsh Posté le 06-01-2006 à 14:52:07
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 :
|
donne donc
Code :
|
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)
Marsh Posté le 07-01-2006 à 13:24:51
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.
Marsh Posté le 05-01-2006 à 22:56:10
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.