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

    Funzione ricorsiva per livelli

    Ciao,
    il mio db è ID id_padre nome ecc..

    Per ora so che i livelli possono solo essere 3 quindi non ci sono cose particolari da fare.

    padre
    --figlio1
    ----sottofiglio1
    ---------prodotto1
    ---------prodotto2
    ----sottofiglio2
    --figlio2

    vorrei però migliorare lo script prevedendo infiniti livelli.
    Per fare questo credo di dover fare una funzione ricorsiva, ma non so se devo modificare il db, aggiungere campi particolari ecc..

    Qualcuno mi può dare una mano?
    dovrei ottenere i risultati all'interno di elenchi <ul>[*].

    Grazie
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  2. #2
    Puoi agire in 2 modi:

    1. Nella stessa tabella delle voci di menu puoi aggiungere un campo parentID dove memorizzi l'ID della voce padre. Ovviamente, le voci di primo livello avranno parentID = 0.

    2 Crei un'altra tabella dove gestisci le relazioni con i campi menuID e parentID.
    In questo modo ti svincoli dalla singola tabella e puoi anche gestire livelli con più relazioni padre.

  3. #3
    la seconda mi piace

    mi spieghi un pò di più?

    grazie
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

  4. #4
    Originariamente inviato da coniglio
    la seconda mi piace

    mi spieghi un pò di più?

    grazie
    Semplicemente nella tabella delle relazioni salvi l'ID della voce figlia nel campo menuID e l'ID del campo padre nel campo parentID.

    A questo punto con una funzione ricorsiva (che richiama sempre se stessa fino a quando non trova un ID figlio che non ha padre) costruisci la sequenza gerarchica di ID.

  5. #5
    Grazie,
    appena posso ci lavoro un pò, se ho bisogno al limite ti chiedo ancora grazie
    Paolo Monge
    Full Stack Web Developer & Strategist
    Come Nasce Un'idea

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 © 2026 vBulletin Solutions, Inc. All rights reserved.