| Autor |
Nachricht |
XSchinkenX
Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
|
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...
|
|
| |
|
 |
XSchinkenX
Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
|
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!
|
|
| |
|
 |
beeviZ
Dabei seit: 30.09.2002
Ort: Dortmund
Alter: 16
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
|
|
| |
|
 |
XSchinkenX
Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
|
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: Dortmund
Alter: 16
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.
|
|
| |
|
 |
XSchinkenX
Dabei seit: 25.01.2004
Ort: Mars
Alter: -
Geschlecht: -
|
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: 23
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 |
[PHP/MySQL] Datum aus Datenbank per PHP umwandeln
Bild Datenbank in PHP
PHP - Datenbank auswählen?
[PHP/MySQL] Datenbank auslesen.
[PHP] Verfallsdatum für Datenbank-Eintrag
Script in PHP für Bildupload in Datenbank
|
 |