j'ai fait un p'tit script php pour de la gestion documentaire et j'aurai
besoin d'un p'tit coup de main.
j'ai une table categorie dans laquelle, j'ai :
id, de la categorie
pid, id de la categorie parente
title, titre
desc, description
Il n'y a pas de limite dans le nombre de sous categories...
Je cherches a afficher de maniere sympa les categories et afficher
l'arborescence complete de la ou on se trouve.
J'y arrive, mais ca marche plus au dela de 2 niveaux, et je vois bien qu'il
faut que j'ecrives autrement si je ne veux pas etre confronté a une limite
de niveaux...
Quelqu'un peut m'aider a ecricre une fonction qui remonte jusqu'a la
categorie racine (id=10) en recuperant toutes les sous categories trouvées à
partir d'une categorie donnée? (celle ou se trouve le user...)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
CrazyCat
VooDoo wrote:
Il n'y a pas de limite dans le nombre de sous categories... Je cherches a afficher de maniere sympa les categories et afficher l'arborescence complete de la ou on se trouve. Quelqu'un peut m'aider a ecricre une fonction qui remonte jusqu'a la categorie racine (id) en recuperant toutes les sous categories trouvées à partir d'une categorie donnée? (celle ou se trouve le user...)
Je ferais ça avec une petite classe relativement simple:
class arbo { function arbo($table) { $this->__construct($table); }
/** * Constructeur, génère un tableau représenatnt l'arborescence * @param string $table */ function __construct($table) { $sql = mysql_query("SELECT * FROM `".$table."` ORDER BY parent_id ASC, ordre ASC"); while ($row = mysql_fetch_arry($sql)) { if ($row['parent_id']!= 0) { $this->Arr_arbo[$row['parent_id']]['child'][] = $row['id']; } $this->menu[$row['id']] = $row; } }
/** * Retourne les parents de la rubrique courante * @param integer $id */ function getparent($id) { if ($this->menu[$id]['parent_id'] != 0) { $this->parent[] = $this->menu[$id]['parent_id']; $this->getparent($this->menu[$id]['parent_id']); } if (is_array($this->parent)) { krsort($this->parent); } } }
et il te suffit de faire: $mytree = &new arbo('table'); $parents = $mytree->getparent(X);
avec X qui est l'id de la rubrique où tu es, $parents sera un tableau avec la liste des parents (de 0 à X-1)
-- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net
VooDoo wrote:
Il n'y a pas de limite dans le nombre de sous categories...
Je cherches a afficher de maniere sympa les categories et afficher
l'arborescence complete de la ou on se trouve.
Quelqu'un peut m'aider a ecricre une fonction qui remonte jusqu'a la
categorie racine (id) en recuperant toutes les sous categories trouvées à
partir d'une categorie donnée? (celle ou se trouve le user...)
Je ferais ça avec une petite classe relativement simple:
class arbo {
function arbo($table) {
$this->__construct($table);
}
/**
* Constructeur, génère un tableau représenatnt l'arborescence
* @param string $table
*/
function __construct($table) {
$sql = mysql_query("SELECT * FROM `".$table."` ORDER BY
parent_id ASC, ordre ASC");
while ($row = mysql_fetch_arry($sql)) {
if ($row['parent_id']!= 0) {
$this->Arr_arbo[$row['parent_id']]['child'][] = $row['id'];
}
$this->menu[$row['id']] = $row;
}
}
/**
* Retourne les parents de la rubrique courante
* @param integer $id
*/
function getparent($id) {
if ($this->menu[$id]['parent_id'] != 0) {
$this->parent[] = $this->menu[$id]['parent_id'];
$this->getparent($this->menu[$id]['parent_id']);
}
if (is_array($this->parent)) {
krsort($this->parent);
}
}
}
et il te suffit de faire:
$mytree = &new arbo('table');
$parents = $mytree->getparent(X);
avec X qui est l'id de la rubrique où tu es, $parents sera un tableau
avec la liste des parents (de 0 à X-1)
--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Réseau IRC Francophone: http://www.crazy-irc.net
Il n'y a pas de limite dans le nombre de sous categories... Je cherches a afficher de maniere sympa les categories et afficher l'arborescence complete de la ou on se trouve. Quelqu'un peut m'aider a ecricre une fonction qui remonte jusqu'a la categorie racine (id) en recuperant toutes les sous categories trouvées à partir d'une categorie donnée? (celle ou se trouve le user...)
Je ferais ça avec une petite classe relativement simple:
class arbo { function arbo($table) { $this->__construct($table); }
/** * Constructeur, génère un tableau représenatnt l'arborescence * @param string $table */ function __construct($table) { $sql = mysql_query("SELECT * FROM `".$table."` ORDER BY parent_id ASC, ordre ASC"); while ($row = mysql_fetch_arry($sql)) { if ($row['parent_id']!= 0) { $this->Arr_arbo[$row['parent_id']]['child'][] = $row['id']; } $this->menu[$row['id']] = $row; } }
/** * Retourne les parents de la rubrique courante * @param integer $id */ function getparent($id) { if ($this->menu[$id]['parent_id'] != 0) { $this->parent[] = $this->menu[$id]['parent_id']; $this->getparent($this->menu[$id]['parent_id']); } if (is_array($this->parent)) { krsort($this->parent); } } }
et il te suffit de faire: $mytree = &new arbo('table'); $parents = $mytree->getparent(X);
avec X qui est l'id de la rubrique où tu es, $parents sera un tableau avec la liste des parents (de 0 à X-1)
-- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net
Mihamina Rakotomandimby
VooDoo wrote:
Bonjour,
Bonjour,
j'ai fait un p'tit script php pour de la gestion documentaire et j'aurai besoin d'un p'tit coup de main. j'ai une table categorie dans laquelle, j'ai : id, de la categorie pid, id de la categorie parente title, titre desc, description
Il n'est pas parfait, mais: http://infogerance.us/Members/infogerance/tutoriels/php-navigation-tree
VooDoo wrote:
Bonjour,
Bonjour,
j'ai fait un p'tit script php pour de la gestion documentaire et j'aurai
besoin d'un p'tit coup de main.
j'ai une table categorie dans laquelle, j'ai :
id, de la categorie
pid, id de la categorie parente
title, titre
desc, description
Il n'est pas parfait, mais:
http://infogerance.us/Members/infogerance/tutoriels/php-navigation-tree
j'ai fait un p'tit script php pour de la gestion documentaire et j'aurai besoin d'un p'tit coup de main. j'ai une table categorie dans laquelle, j'ai : id, de la categorie pid, id de la categorie parente title, titre desc, description
Il n'est pas parfait, mais: http://infogerance.us/Members/infogerance/tutoriels/php-navigation-tree
Mickael Wolff
Bonjour,
j'ai fait un p'tit script php pour de la gestion documentaire et j'aurai besoin d'un p'tit coup de main. j'ai une table categorie dans laquelle, j'ai : id, de la categorie pid, id de la categorie parente title, titre desc, description
Il n'y a pas de limite dans le nombre de sous categories...
Donc un arbre <http://sql.developpez.com/arborescence/>.
j'ai fait un p'tit script php pour de la gestion documentaire et j'aurai
besoin d'un p'tit coup de main.
j'ai une table categorie dans laquelle, j'ai :
id, de la categorie
pid, id de la categorie parente
title, titre
desc, description
Il n'y a pas de limite dans le nombre de sous categories...
Donc un arbre <http://sql.developpez.com/arborescence/>.
j'ai fait un p'tit script php pour de la gestion documentaire et j'aurai besoin d'un p'tit coup de main. j'ai une table categorie dans laquelle, j'ai : id, de la categorie pid, id de la categorie parente title, titre desc, description
Il n'y a pas de limite dans le nombre de sous categories...
Donc un arbre <http://sql.developpez.com/arborescence/>.
Merci pour vos réponses. J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon pour pouvoir appliquer les autres.... Apparement meme celle de Crazy j'ai du mal...
mon tableau reste toujours NULL... et je vois pas ce qui cloche!!
Crazy tu peux m'eclairer???
Merci pour vos réponses.
J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon pour
pouvoir appliquer les autres....
Apparement meme celle de Crazy j'ai du mal...
mon tableau reste toujours NULL...
et je vois pas ce qui cloche!!
Merci pour vos réponses. J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon pour pouvoir appliquer les autres.... Apparement meme celle de Crazy j'ai du mal...
mon tableau reste toujours NULL... et je vois pas ce qui cloche!!
Crazy tu peux m'eclairer???
Mihamina Rakotomandimby
VooDoo wrote:
J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon pour pouvoir appliquer les autres....
Ben je compare la mienne et celle de CrazyCat: - la mienne ne fait pas appel à des notion d'objet (ça n'est ni meilleur ni moins bien). - la mienne est un poil plus détaillée (je pense que tu n'as pas eu le courage de lire les détails fournis)
De plus, plutot que de nous donner ce que donne telle ou telle méthode, tu pourrais analyser le code et demander des explications sur telle ou telle portion que tu ne comprends pas.
VooDoo wrote:
J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon pour
pouvoir appliquer les autres....
Ben je compare la mienne et celle de CrazyCat:
- la mienne ne fait pas appel à des notion d'objet (ça n'est ni meilleur
ni moins bien).
- la mienne est un poil plus détaillée (je pense que tu n'as pas eu le
courage de lire les détails fournis)
De plus, plutot que de nous donner ce que donne telle ou telle méthode,
tu pourrais analyser le code et demander des explications sur telle ou
telle portion que tu ne comprends pas.
J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon pour pouvoir appliquer les autres....
Ben je compare la mienne et celle de CrazyCat: - la mienne ne fait pas appel à des notion d'objet (ça n'est ni meilleur ni moins bien). - la mienne est un poil plus détaillée (je pense que tu n'as pas eu le courage de lire les détails fournis)
De plus, plutot que de nous donner ce que donne telle ou telle méthode, tu pourrais analyser le code et demander des explications sur telle ou telle portion que tu ne comprends pas.
CrazyCat
VooDoo wrote:
Crazy tu peux m'eclairer???
Traité en privé (on ne va pas faire trop de bruit), je ferais parvenir ici le problème et sa solution.
-- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net
VooDoo wrote:
Crazy tu peux m'eclairer???
Traité en privé (on ne va pas faire trop de bruit), je ferais parvenir
ici le problème et sa solution.
--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Réseau IRC Francophone: http://www.crazy-irc.net
Traité en privé (on ne va pas faire trop de bruit), je ferais parvenir ici le problème et sa solution.
-- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net
VooDoo
c'est bon c'est résolu... merci pour votre aide!
"VooDoo" a écrit dans le message de news: ffhi8d$m9p$
Merci pour vos réponses. J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon pour pouvoir appliquer les autres.... Apparement meme celle de Crazy j'ai du mal...
mon tableau reste toujours NULL... et je vois pas ce qui cloche!!
Crazy tu peux m'eclairer???
c'est bon c'est résolu...
merci pour votre aide!
"VooDoo" <VooDooNet38@free.fr> a écrit dans le message de news:
ffhi8d$m9p$1@reader1.imaginet.fr...
Merci pour vos réponses.
J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon
pour
pouvoir appliquer les autres....
Apparement meme celle de Crazy j'ai du mal...
mon tableau reste toujours NULL...
et je vois pas ce qui cloche!!
"VooDoo" a écrit dans le message de news: ffhi8d$m9p$
Merci pour vos réponses. J'ai essayé d'appliquer celle de crazycat, je ne me sens pas assez bon pour pouvoir appliquer les autres.... Apparement meme celle de Crazy j'ai du mal...
mon tableau reste toujours NULL... et je vois pas ce qui cloche!!
Crazy tu peux m'eclairer???
CrazyCat
Mihamina Rakotomandimby wrote:
Ben je compare la mienne et celle de CrazyCat:
Si tu y tiens, bien que je ne vois pas l'intérêt qu'il y a...
- la mienne ne fait pas appel à des notion d'objet (ça n'est ni meilleur ni moins bien).
En effet, mais c'est la lutte habituelle entre l'objet et le procédurale. Pour ma part, j'ai en fait réduit un objet que j'utilise fréquemment pour l'adapter aux besoins de Voodoo, et je suis partisan de l'objet car on peut ensuite l'étendre facilement pour avoir plus de choses.
- la mienne est un poil plus détaillée (je pense que tu n'as pas eu le courage de lire les détails fournis)
J'ai fourni un code parlant de lui-même, l'avantage des objets c'est qu'on peut les utiliser comme des black-boxes.
Tu as oublié en passant ce que j'appellerais un petit avantage de mon système sur le tien: compte le nombre de requètes SQL. J'avoue que je génère quelques variables qui, dans un cas extrème, pourraient être assez énormes (vu que je met toute l'arbo en mémoire), mais je doute que cela épuise réellement le système.
De plus, plutot que de nous donner ce que donne telle ou telle méthode, tu pourrais analyser le code et demander des explications sur telle ou telle portion que tu ne comprends pas.
Là je suis d'accord: quand on a un soucis, on essaye de préciser où est le soucis ou quels sont les symptomes :)
-- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net
Mihamina Rakotomandimby wrote:
Ben je compare la mienne et celle de CrazyCat:
Si tu y tiens, bien que je ne vois pas l'intérêt qu'il y a...
- la mienne ne fait pas appel à des notion d'objet (ça n'est ni meilleur
ni moins bien).
En effet, mais c'est la lutte habituelle entre l'objet et le procédurale.
Pour ma part, j'ai en fait réduit un objet que j'utilise fréquemment
pour l'adapter aux besoins de Voodoo, et je suis partisan de l'objet car
on peut ensuite l'étendre facilement pour avoir plus de choses.
- la mienne est un poil plus détaillée (je pense que tu n'as pas eu le
courage de lire les détails fournis)
J'ai fourni un code parlant de lui-même, l'avantage des objets c'est
qu'on peut les utiliser comme des black-boxes.
Tu as oublié en passant ce que j'appellerais un petit avantage de mon
système sur le tien: compte le nombre de requètes SQL.
J'avoue que je génère quelques variables qui, dans un cas extrème,
pourraient être assez énormes (vu que je met toute l'arbo en mémoire),
mais je doute que cela épuise réellement le système.
De plus, plutot que de nous donner ce que donne telle ou telle méthode,
tu pourrais analyser le code et demander des explications sur telle ou
telle portion que tu ne comprends pas.
Là je suis d'accord: quand on a un soucis, on essaye de préciser où est
le soucis ou quels sont les symptomes :)
--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Réseau IRC Francophone: http://www.crazy-irc.net
Si tu y tiens, bien que je ne vois pas l'intérêt qu'il y a...
- la mienne ne fait pas appel à des notion d'objet (ça n'est ni meilleur ni moins bien).
En effet, mais c'est la lutte habituelle entre l'objet et le procédurale. Pour ma part, j'ai en fait réduit un objet que j'utilise fréquemment pour l'adapter aux besoins de Voodoo, et je suis partisan de l'objet car on peut ensuite l'étendre facilement pour avoir plus de choses.
- la mienne est un poil plus détaillée (je pense que tu n'as pas eu le courage de lire les détails fournis)
J'ai fourni un code parlant de lui-même, l'avantage des objets c'est qu'on peut les utiliser comme des black-boxes.
Tu as oublié en passant ce que j'appellerais un petit avantage de mon système sur le tien: compte le nombre de requètes SQL. J'avoue que je génère quelques variables qui, dans un cas extrème, pourraient être assez énormes (vu que je met toute l'arbo en mémoire), mais je doute que cela épuise réellement le système.
De plus, plutot que de nous donner ce que donne telle ou telle méthode, tu pourrais analyser le code et demander des explications sur telle ou telle portion que tu ne comprends pas.
Là je suis d'accord: quand on a un soucis, on essaye de préciser où est le soucis ou quels sont les symptomes :)
-- Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu Réseau IRC Francophone: http://www.crazy-irc.net
P'tit Marcel
Tu as oublié en passant ce que j'appellerais un petit avantage de mon système sur le tien: compte le nombre de requètes SQL. J'avoue que je génère quelques variables qui, dans un cas extrème, pourraient être assez énormes (vu que je met toute l'arbo en mémoire), mais je doute que cela épuise réellement le système.
Mes deux centimes d'euros :
1- Il vaut mieux n'extraire que les données dont on aura besoin. Ici, c'est "l'arborescence complete de la ou on se trouve" et non toute l'arbo
2- J'ai toujours très peur d'un traitement récursif qui stocke ses données en mémoire car la récursivité a potentiellement un déploiement exponentiel. Même si php gère mieux les "grosses" variables que des langages plus anciens (cobol avec nous), c'est risqué de se retrouver avec une variable qui peut peser des centaines de Mo voire des Go...
a+ -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/
Tu as oublié en passant ce que j'appellerais un petit avantage de mon
système sur le tien: compte le nombre de requètes SQL.
J'avoue que je génère quelques variables qui, dans un cas extrème,
pourraient être assez énormes (vu que je met toute l'arbo en mémoire),
mais je doute que cela épuise réellement le système.
Mes deux centimes d'euros :
1- Il vaut mieux n'extraire que les données dont on aura besoin. Ici,
c'est "l'arborescence complete de la ou on se trouve" et non toute l'arbo
2- J'ai toujours très peur d'un traitement récursif qui stocke ses
données en mémoire car la récursivité a potentiellement un déploiement
exponentiel. Même si php gère mieux les "grosses" variables que des
langages plus anciens (cobol avec nous), c'est risqué de se retrouver
avec une variable qui peut peser des centaines de Mo voire des Go...
a+
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
Tu as oublié en passant ce que j'appellerais un petit avantage de mon système sur le tien: compte le nombre de requètes SQL. J'avoue que je génère quelques variables qui, dans un cas extrème, pourraient être assez énormes (vu que je met toute l'arbo en mémoire), mais je doute que cela épuise réellement le système.
Mes deux centimes d'euros :
1- Il vaut mieux n'extraire que les données dont on aura besoin. Ici, c'est "l'arborescence complete de la ou on se trouve" et non toute l'arbo
2- J'ai toujours très peur d'un traitement récursif qui stocke ses données en mémoire car la récursivité a potentiellement un déploiement exponentiel. Même si php gère mieux les "grosses" variables que des langages plus anciens (cobol avec nous), c'est risqué de se retrouver avec une variable qui peut peser des centaines de Mo voire des Go...
a+ -- P'tit Marcel stats sur les forums modérés http://www.centrale-lyon.org/ng/