title image


Smiley nach wie vor...
hi,



leider hilft mir der link nicht wirklich weiter.

anhand von develnet.org hab ich mich ja in die sache so weit eingearbeitet, jedoch befürchte ich, dass mein ansatz bereits falsch ist - und mit solchen ideen hat wohl dort auch niemand gerechnet...



mein hintergrund, vlt. hilft das, zu verstehen, wo mein problem liegt:

ich möchte für programm x (egal - ich hab die klasse so gestaltet, dass ich jedes beliebige programm einbinden kann) kategorien erstellen. nun möchte ich aber sicherstellen, dass ich beliebig viele kategorien und unterkategorien erstellen kann - und diese eben auch in der reihenfolge verändern kann...



im bereich der root-kategorien ist das kein thema - dort vergebe ich eine spalte sortorder (int), die ich nahc belieben manipulieren kann. das funktioniert ja auch bestens.



nun will ich aber die unterkategorien (sozusagen) auch in der ausgabe verschieben können. das macht ja aber nur sinn, wenn ich den jeweiligen level berücksichtige! also:



Betriebssystem

. Windows

- Win 98

- Win XP

- Win 2K



ich möchte also alle Win x - einträge verschieben können - innerhalb des levels!

ich muss dafür ja aber herausfinden, wie viele "brüder" jedes einzelne element besitzt - und hieran scheitere ich.



mein ansatz:

SELECT c.id, c.cat_status, c.cat_title, COUNT(c2.id) AS level

FROM $this->DB c

LEFT JOIN $this->DB c2 ON c2.cat_root = c.cat_root

AND c.cat_left BETWEEN c2.cat_left AND c2.cat_right

...

damit erfahre ich, auf welchem "level" sich ein element befindet. also dachte (... keine kommentare bitte) ich mir, dass ich damit zum erfolg kommen müsste:

SELECT c.id, c.cat_status, c.cat_title, COUNT(c2.id) AS level, COUNT(c3.id) AS brother

FROM $this->DB c

LEFT JOIN $this->DB c2 ON c2.cat_root = c.cat_root

AND c.cat_left BETWEEN c2.cat_left AND c2.cat_right

LEFT JOIN $this->DB c3 ON c3.cat_root = c.cat_root

...

tja, un nun müssten für mein verständnis nur die werte gezählt werden, die den selben level besitzen - nur: wie? "AND level = brother" kann ja unmöglich ein ansatz sein. wenn jemand ne idee hat bitte einfach ein schlagwort bringen - oder einen hinweis, ich muss mich ja irgendwo festbeissen können ;)

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: