Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Menu di navigazione dinamico

    Buonasera a tutti,
    Ho creato la seguente tabella per la gestione di un menu di navigazione:
    id nomeFile padre livello

    padre e l'id della pagina padre del file e livello è il livello rispettivo ad un elenco puntato.

    Ora volevo far visualizzare il menu di navigazione con l'elenco puntato, come posso controllare il livello e il padre e ottenere un elenco puntato con tutte le pagine e loro rispettive figlie?

    Questo è il codice che utilizzo ma non funziona, purtroppo il terzo livello e successivi non si visualizza sotto le giuste pagine...
    Codice PHP:
    $sql="SELECT * FROM name_table ";
            
    $rs=mysql_query($sql) or die(mysql_error());
            echo
    "<ul>";
            while(
    $row=mysql_fetch_array($rs)){
                
    $livello=$row['livello'];
                
    $nome=$row['nome'];
                
    $padre=$row['padre'];
                
    $id=$row['id'];
                
                
                if(
    $livello>='1'){
                    echo
    "<ul>[*]$nome";
                    
    $livello="SELECT * FROM name_tableWHERE padre='".$id."' ";
                    
    $rsLivel=mysql_query($livello) or die(mysql_error());
                    while(
    $campo=mysql_fetch_array($rsLivel)){
                        
    $nome=$campo['nome'];
                        echo
    "<ul>[*]$nome[/list]";
                        
                    }
                    echo
    "[/list]";
                }
            }
            echo
    "[/list]"
    Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ..quanti livelli hai?
    fare tutto con una tabella è un bagno di sangue..
    cicli su cicli e query su query.. almeno col metodo che stai usando..

    vedi se ti può essere utile questa discussione
    http://forum.html.it/forum/showthrea...readid=1420244

  3. #3
    .. La tabella viene riempita dal cliente ovvero ad ogni pagina creata puoi associare il padre e in automatico ti crea il livello quindi non saprò mai a che livello potrà arrivare il menu.
    Quindi devo realizzare del codice più dinamico possibile...

    In modo da far visualizzare al cliente il menu che ha creato nel cms.

  4. #4
    Vi segnalo la soluzione per ottenere un menu dinamico a livelli con php, quello che avevo chiesto.

    Come potete vedere ho utilizzato una funzione ricorsiva e la chiamata a quest'ultima sarà quanto segue menu('0');
    Codice PHP:
    function menu($level){
        
    $sql="SELECT * FROM name_table WHERE padre=".$level." ORDER BY id ASC";
        
    $menu=mysql_query($sql) or die(mysql_error());
        echo
    '<ul>';
        while (
    $element=mysql_fetch_array($menu)){
            echo 
    "<li";
            if (
    $level!=0){echo' id="submenu"';}
            echo 
    " >[url='".$element[']".$element['nome']."[/url]";
            $id=$element['
    id'];  
            $sqlSub="SELECT * FROM name_table WHERE padre=".$id." ORDER BY id ASC";
            $subelement=mysql_query($sqlSub) or die(mysql_error());
            if (mysql_num_rows($subelement)>0){        //eventuali sottovoci
                menu($id);
            }
            echo'';
        }
        echo '
    [/list]';    

    Spero di essere stato utile a qualcuno, oltre a me stesso ovviamente

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ooooottimo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.