2017-04-11 1 views
0

Ich habe den folgenden Code Kategorie und Unterkategorien von einer Datenbank erstellenWie verweisen ich eine dynamisch erstellte Liste php

function displayChild($parent) 
{ 
    include 'connect.php'; 
    $parentid=$parent; 
    $catSql='select* from categories where parentid='.$parentid.''; 
    $result=$con->query($catSql); 
    echo '<div><ul class='.'ul'.$parentid.'>'; 
    while ($rows=$result->fetch_assoc()) 
    { 
     echo '<li><a href="#">'.mb_strtoupper($rows['catName']).'</a></li>'; 
     displayChild($rows['catId']); 
    } 
    echo '</ul></div>'; 
} 
displayChild('0'); 

Die CSS-Bits

wie folgt
@charset "utf-8"; 
.ul0{} 
.ul1{} 
.ul2{} 
. 
. 
. 
.uln{} 

seit dem ersten sein sollte Das Tag erscheint außerhalb der While-Schleife und bildet eine wirklich seltsame Liste, wenn ich es referenziere. Das Einfügen in die while() -Schleife ist ebenfalls keine Option. bitte helfe

+0

Ihr Code ist möglicherweise anfällig für SQL-Injection-Angriffe. Sie sollten [mysqli] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) oder [PDO] (http://php.net/manual/en/pdo.prepared-) verwenden. Statements.php) vorbereitete Anweisungen wie in [dieser Beitrag] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) beschrieben. –

Antwort

0

Ich bin nicht genau sicher, was du meinst "es bildet eine wirklich komische Liste, wenn ich es beziehe." Es hört sich jedoch so an, als ob Sie vielleicht seltsames HTML bekommen. Wenn dies der Fall ist, erhalten Sie bessere Ergebnisse, wenn Sie den verschachtelten Funktionsaufruf innerhalb der folgenden Zeile eingeben:

function displayChild($parent){ 
    include 'connect.php'; 
    $parentid=$parent; 
    $catSql='select* from categories where parentid='.$parentid.''; 
    $result=$con->query($catSql); 
    echo '<div><ul class='.'ul'.$parentid.'>'; 

    while ($rows=$result->fetch_assoc()){ 
    echo '<li><a href="#">'.mb_strtoupper($rows['catName']).'</a>'; 
    displayChild($rows['catId']); // note this is now inside the list item 
    echo '</li>'; 
    } 
    echo '</ul></div>'; 
} 
Verwandte Themen