[PHP] Kategorien und beliebig viele Unterkategorien

  • Hi Leute!

    Ich versuche gerade mir ein kleines Archiv zu erstellen,
    dieses braucht eben natürlich Kategorien und sogar Unterkategorien!
    Soweit so gut, nur ich will eben auch, dass ich unbegrenzt Unterkategorien machen kann.

    So nun das Problem:
    Eine ewig Schleife! Warum is mir klar... da ich die Funktion in die selbige Funktion eingesetzt habe.
    Aber wenn die IF-Abfrage in der Funktion ungültig wird, müsste doch diese Schleife unterbrochen werden, und ein Ende finden.... ???

    Hab alles versucht im PHP-Code zu erklären... dürfte evtl verständlich sein ^^
    Falls nicht fragt mich! Danke im Voraus!


    Mfg me =)

    Hier der code (hoffe ihr könnt was damit anfangen ) ^^


    ~~~ Mfg Jack Daniels ~~~

  • Erstmal finde ich, dass das ein sehr komischer Variablen NAme ist.
    Normaler Weise nennt man soetwas $counter oder sowas.
    Das Problem liegt am vergleichsoperator. Wenn du wissen willst, ob etwas nicht, dem entspricht machst du nicht !== sondern !=
    Du könntest natürlich auch einfach machen.

    Code
    if($variable == true)
    {
    bla
    }

    Viele Grüße

    Mir nicht

  • was bringt den das ${"row".$i} im while auser eine speicher verschendung erster güteklasse ?!


    PS $row[] währe ähnlich aber effectiver und strukturierter...

    was soll

    while(${"row".$i} = mysql_fetch_assoc(${"result".$i}));

    am ende der datei...


    also im großen und ganzen wegschmeissen und neu überlegen und nochmal versuchen...

    da es bei einer rekursuvien funktion nätig währe die parnt id zu übergeben..

    und dann bloß noch das ding mittels:

    check_and_post(0)
    starten

  • Hi nochmal ;)
    Danke für die Antworten!

    Mir nicht:
    Danke für die Richtigstellung des Vergleichesoperator =)
    Warum ich diese komischen Variablen nehme?
    Folgendes: wenn ich nun einfach $row nehme,
    funzt das schon, nur sobald das script dann eine 2.te 3.te oder 4.te schleife benutzt, die auch mit $row, $sql und $result arbeiten, überschreiben die sich gegenseitig und es funzt nich mehr, daher brauch ich so iene dynamische Variabel, die automatisch bei jeden Durchgang ($i) eben den Namen ändert.

    GreenRover:

    Zitat


    also im großen und ganzen wegschmeissen und neu überlegen und nochmal versuchen...


    Das warn schon meine größten Geisteserzeugnisse, die ich bisher nur irgendwie zusammen kriege :-/.... bin noch nicht so gut und da steh ich vor ein Prob, das noch zu groß für mich ist.
    Kapier nicht warum das nicht läuft...

    Verstehe nicht wie man das mit Arrays bewerkstelligen soll,
    vorallem dass das richtige benutzt wird? Meisnt du so:
    $row['$i'] ? Warum verbraucht das dann weniger Speicher als die dynamische Variabel?

    Zitat

    da es bei einer rekursuvien funktion nätig währe die parnt id zu übergeben..


    Ich hab überhaupt keine Ahnung wie man mit rekursiven Funktionen umgeht,...das ist meine erste :oops: lol ^^

    Zitat

    was soll
    while(${"row".$i} = mysql_fetch_assoc(${"result".$i}));
    am ende der datei...


    Naja, das ist eben das Ende der Do-While-Schleife um die Kategorie in diesem Bereich anzuzeigen.
    Ich kenne keine bessere Möglichkeit um alle Array-Elemente auslesen zu lassen :-/
    While weil es ja irgendwann aufhören muss solang nix mehr gibt =)

    Hoffe ihr könnt mir weiterhelfen!
    Mfg JackDaniels!

    EDIT:
    wollte ez ma die dynamischen Variablen in arrays umschrieben...
    aber bei sowas wie
    ${"row".$i}['Name'] geht das nicht mehr oder?
    Oder wie schreibt man Arrays in Arrays?
    $row['$i['Name']'] ? so?

    ~~~ Mfg Jack Daniels ~~~

  • so fabnge mal hinten an

    $row[$i['Name']] das braucht net weniger speicher aber währe zumindest strukturierter...

    und nun nochmal ein kleienr anstoß...

  • Wow!
    Das funzt =)
    Tausend dank!!!!!
    Du bnsit für mich der größte *g*
    :D :D :D

    Um das Verständnis zu vervollständigen:
    Warum benutzt du keine Klammern bei den If-Abfragen?
    Woher weiß man dann wann die IF-Abfrage aufhört?
    Und das <?=$row['Name']; ?> kann man anstatt <? echo ... ?> benutzen?

    EDIT:
    zur ersten und zweiten frage:
    Kann das sein, dass es dann nur auf die nexte zeile sich auswirkt?

    ~~~ Mfg Jack Daniels ~~~

  • Zitat von Jack Daniels

    EDIT:
    zur ersten und zweiten frage:
    Kann das sein, dass es dann nur auf die nexte zeile sich auswirkt?

    jepp

    Für die nächste Zeit erstmal inaktiv.