phpbar.de logo

Mailinglisten-Archive

[php] Rekursion in PHP (Kategorien,Unterkategorien)

[php] Rekursion in PHP (Kategorien,Unterkategorien)

Thilo Cestonaro php_(at)_phpcenter.de
Fri, 18 Oct 2002 12:58:02 +0200


Hey Leute,
sorry für meine letzte Mail ich wollte anworten und hab doppelt geklickt an
da war dann auch shcon senden beim zweiten klick unter dem Cursor :-((

Hey Patrick,

ich hab des jetzt mal auf dein Problem angepasst (mir ist langweilig) :-))
etweige Tippfehler oder so keine Garantie
konnts ja jetzt auch nicht testen :-)

<CODE>
   function startMenu($arrCat = 0) {
                if($arrCat == 0)
                    MakeSubTree( Array("NULL"), $_SERVER["SCRIPT_NAME"]);
                else
                    MakeSubTree( $arrCat, $_SERVER["SCRIPT_NAME"]);
   }

// $arrCat = Array der geöffneten Categorien
// $href ist für die Menu-Links
// $current = Der Key wo im Array ich mich befinde
function MakeCatTree($arrCat, $hRef, $current = 0) {
           $query = "SELECT * from Categorie WHERE CatPID =
'".$arrCat[$current];
            $result = mysql_query($query);

 if( mysql_affected_rows() > 0) {

while (($row = mysql_fetch_array($result))) {
            if($current == count($arrCat) || $row["CatID"] !=
($arrCat[$current])) {
                    //Daten Ausgeben
                    EchoData($row, $hRef);
           }
           else
           {
                EchoData($row, $hRef);

                //Wegs ? u. & bei GET
                if(!$current)
                    $NewhRef = $hRef."?arrCat[]=".$row["CatID"];
                else
                    $NewhRef = $hRef."&arrCat[]=".$row["CatID"];

                //Rekursion
                MakeCatTree($arrCat, $NewhRef, $current + 1);
           }
      }
 }
}

function EchoData($row, $hRef) {
            echo "<table>\n";
            echo "<tr><td>CatID</td><td>".$row["CatID"]."</td></tr>\n";
            echo "<tr><td>CatPID</td><td>".$row["CatPID"]."</td></tr>\n";
            echo "<tr><td>Name</td><td><a
href=\"$hRef\"".$row["Name"]."</td></tr>\n";
            echo "</table>";
}

</CODE>


php::bar PHP Wiki   -   Listenarchive