Autor |
Nachricht |
Account gelöscht
Ort: -
Alter: -
|
Verfasst Fr 09.12.2005 13:27
Titel
|
|
|
Wer hat das denn wieder ausgegraben? Das Ding oben is schrott ich sitz grad *zufälligerweise* dran und schreibs neu. Dauert aber noch neun Jahre...
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Sa 10.12.2005 00:43
Titel
|
|
|
kotzt mich voll an, anders als rekursiv bekomm ichs nicht hin. nested sets sind zwar knorke, aber wenn man spielereien wie getSiblings, getParent, getFirstChild, insertChild, insertPrevSibling etc.. benötigt, ist das ne ziemliche arbeit. und ich gebs zu: die queries übersteigen mein denkvermögen.
argh!
|
|
|
|
|
Anzeige
|
|
|
beeviZ
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Sa 10.12.2005 03:45
Titel
|
|
|
poste mal deine rekursive lösung. hab auch mal sowas gemacht. war aber am ende sowas von derbe billig. aber funktioniert
Zuletzt bearbeitet von beeviZ am Sa 10.12.2005 03:45, insgesamt 1-mal bearbeitet
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Sa 10.12.2005 14:58
Titel
|
|
|
Ist auch mehr als preiswert *peinlichpeinlich*, geht sicher besser aber ist ja auch noch nicht fertig
Code: | function getMenuTree($startId = false, $lvl = false) {
if ($startId) {
$this->str = "<ul>";
$query = "SELECT *
FROM pre_cPages
WHERE id = {$startId}";
$res = $this->DB->query($query);
$r = $res->fetchAll(PDO_FETCH_ASSOC);
$this->str .= "<li>";
$this->str .= "<a href=\"index.php?pageId={$r[0]["pageStrId"]}\">{$r[0]["pageStrId"]}</a>";
$this->pId = $r[0]["id"];
$this->getMenuTree();
$this->str .= "</li>";
$this->str .= "</ul>";
} else {
$query = "SELECT * FROM pre_cPages
WHERE pid = {$this->pId} ORDER BY sort";
$res = $this->DB->query($query);
$r = $res->fetchAll(PDO_FETCH_ASSOC);
if ($r) {
$this->str .= "<ul>";
foreach ($r AS $v) {
$this->str .= "<li><a href=\"index.php?pageId={$v["pageStrId"]}\">{$v["pageStrId"]}</a>";
$this->pId = $v["id"];
$this->getMenuTree();
$this->str .= "</li>";
}
$this->str .= "</ul>";
}
}
return $this->str;
} |
|
|
|
|
|
beeviZ
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 12.12.2005 03:35
Titel
|
|
|
haha. meins is so dermaßen noch billiger. bin aber gerade dabei das noch n bisschen zu überarbeiten:
Code: | function list_cats($cat_id='') {
$current = mysql_query("SELECT * FROM categories WHERE `cat_id` = '$cat_id'");
$get_parent = mysql_fetch_row($current);
$get_childs = mysql_query("SELECT cat_id, parent_cat_id FROM categories WHERE `cat_id` = '$cat_id'");
while($cat = mysql_fetch_assoc($get_childs)) {
$categories .= $cat['cat_id'].';';
$categories .= list_cats($cat['parent_cat_id']);
}
return $categories;
}
$categories = list_cats($cat_id);
$categories = explode(";",$categories);
$categories = array_reverse($categories);
|
print_r($categories) hat geschrieben: | Code: | array (
[0] = ,
[1] = 4,
[2] = 12,
[3] = 22
) |
|
...
//edit
ich sach mal, hauptsache es klappt. und das tuts
Zuletzt bearbeitet von beeviZ am Mo 12.12.2005 03:35, insgesamt 1-mal bearbeitet
|
|
|
|
|
Waschbequen
Account gelöscht
Ort: -
|
Verfasst Mo 12.12.2005 10:02
Titel
|
|
|
Gar viel gibt's da nicht zu überarbeiten - wenn die Datenbank keine andere Möglichkeit unterstützt (ich sag nur CTE ), dann ist das für den Anwendungsfall sicher die effizienteste Lösung. Aber das ist nur ne Lösung, um die komplette Struktur rauszuhauen - wenn man nur den aktuellen Ast des Baumes aufklappen will, holt man sich so eindeutig zu viel Daten. Für den Fall würde ich dann nochmal nen Blick auf mein Snippet ein paar Seiten zuvor empfehlen.
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mo 12.12.2005 16:54
Titel
|
|
|
Eben darum gehts... nen Baum zu trecken is net dat Problem jung ewwe allet andere is jesicke.
|
|
|
|
|
webdeveloper
Dabei seit: 25.05.2003
Ort: SG
Alter: 39
Geschlecht:
|
Verfasst Mo 12.12.2005 18:08
Titel
|
|
|
für miene begriffe kannst du da nur mit nem parent und nem child arbeiten...
ebene 1 = parent 0
ebene 2 = parent 1
.....
Im endeffekt so, wie es beeviZ in seinem select gemacht hat.
3 spalten auslesen lassen (id, name und parent) und fertig.
|
|
|
|
|
|
|
|
Ähnliche Themen |
Problem Multilevel Liste Indesign CC (2014)
Kugel kreieren
wie erstelle ich diesen menü effekt bzw. das gesammte menü?
CSS Menü - Finde nicht das richtige Menü
datenbank ?
SQL-Datenbank
|
|