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

    struttura parentele delle pagine

    Gestico un sito, tramite un mio CMS, il meccanismo è molto semplice, in pratica non esiste una gestione delle categorie e sottocategorie ma pracisamente la struttura viene creata sulla base di parentele (padre/figlio) questo mi permette di non avere limiti per categorie e sottocategorie.

    il problema che si pone, dipende proprio da questo, infatti ogni record che rappresenta una pagina contiene al suo interno questi valori:

    1)ID principale
    2)ID di parentela (sarebbe l'ID principale a cui esso è imparentato)
    3)Menù ID
    ... ecc...

    se io ho 5 pagine imparentate così:

    Codice PHP:
    P0
    |-->P01
        
    |-->P011
        
    |-->P012
    P1
    |-->P11
    |-->P12 
    in pratica, posso riconoscere le parentele di P01 e P12 che sono rispettivamente P0 e P1, ma se devo riconoscere a quale parentela, diciamo "radice" è imparentata la pagina P011 ??... come ci risalgo? infatti nel suo record ho l'ID di parentela che non è quella "radice" (P0)

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Immagino tu debba fare n query quanti sono i "salti generazionali".
    Faccio ste funzioncine supponendo che una root ha come ID di parentela = 0.
    Codice PHP:
    function getFather($id_page) {
     return 
    mysql_result(mysql_query("SELECT padre FROM pagine WHERE id=".$id_page),0);
    }
    function 
    getRoot($id_page) {
     
    $padre getFather($id_page); 
     if (
    $padre == 0) {
      return 
    $id_page// la pagina è già root
     
    }
     else {
      
    getRoot($padre); // cerca il root del padre
     
    }

    Spero di aver azzeccato la ricorsione

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.