Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [MySQL] Ricorsione???

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444

    [MySQL] Ricorsione???

    Salve, ho un piccolo problema.

    Ho uno script PHP che organizza dei dati in categorie. Le categorie sono in una tabella a parte, con i campi

    id
    genitore
    nome

    in questo modo, posso permettere l'annidamento di cartelle.
    Se genitore = 0, allora la cartella è a livello base, altrimenti genitore contiene l'id della genitore.
    A questo punto, nella tabella con i dati, ci sarà un campo
    id_cat che indica in quale cartella deve trovarsi il file.

    Ad esempio

    codice:
    id    genitore   nome
    1     0          cart1
    2     0          cart2
    3     1          cart3
    4     1          cart4
    5     3          cart5
    5     2          cart6
    rappresenta la struttura gerarchica

    codice:
    + cart1
      + cart3
        + cart5
      + cart4
    + cart2
      + cart6
    A questo punto ho da risolvere un bel problema, contare i record contenuti dentro una cartella, ma, ovviamente, questo numero deve contenere anche i valori di tutte le sottocartelle (in modo ricorsivo, insomma).

    Tipo, se voglio il numero di record di cart1, dovrei contare:
    - i record inseriti direttamente in cart1
    - i record in cart3
    - i record in cart5
    - i record in cart4

    potrei agire a livello PHP, ma mi sembra un processo molto lungo e che richiede l'ausilio di tantissime query.
    Non esiste un modo, con una sola query di semplificare il lavoro?

    Grazie a tutti.
    *********************************
    Andrea
    *********************************

  2. #2
    esite un massimo di livelli oppure possono essere infiniti?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    possono essere infiniti
    *********************************
    Andrea
    *********************************

  4. #4
    allora non ti resta che php misto a x query

  5. #5

    Re: [MySQL] Ricorsione???

    Originariamente inviato da Squall1988
    Non esiste un modo, con una sola query di semplificare il lavoro?
    Sì, passare ai nested set
    C'è un articolo e il thread dedicato (dove nessuno ha cahato la mia funzione di spostamento )
    http://forum.html.it/forum/showthrea...ght=nested+set

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.