Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14

Discussione: livello albero

  1. #11
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682

    Sql: Nested set, recuperare solo sottonodi

    Ho dato un occhiata all'articolo per applicare il nested sets ma mi é rimasta qualche perplessità.
    Ad esempio se voglio creare un menu di un catalogo vorrei capire come comportarmi.
    Facendo riferimento alla tabella dell'articolo facciamo caso che voglia listare solo le categorie.
    Nella tabella il record 2 é Francesco ed ha un solo nodo al di sotto, ovvero Fabio, che allo stesso
    tempo é una pagina o (child element) ed é il parent node dei record Piero e Gianni.
    Mi chiedevo qual'é la giusta query per recuperare a partire da un nodo solo altri sottonodi.
    Devo usare una query del genere :
    select b.nome from personale as a, personale as b
    where a.id = 2 and a.dx -1 = b.dx
    In questo modo recupero il nodo subito dopo Francesco ovvero Fabio, ma non riesco
    a recuperare altri sottonodi nel caso esistessero.
    Come faccio a fare questa cosa ?
    Grazie e scusate per troppe righe.

  2. #12
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682
    Forse ci sono. Dal momento in cui le foglie hanno sempre che i numeri sx e dx sono in progressione, ovvero dx = sx + 1 per recuperare solo nodi a partire da un nodo parent invertiamo
    quella condizione: select nome from personale where (dx != sx + 1) and id > n, dove n é l'id
    del nodo parent da cui iniziamo a cercare.
    Spero che qualcuno possa confermare.

  3. #13
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682
    Non capisco perché quando raramente posto sono sempre snobbato, domande troppo stupide...
    Rimane ancora un altra questione che non ho capito come si risolve per la tabella così come descritta. Che succede se la tabella deve contenere più alberi ? Con adjacency si poteva
    settare il campo parent al valore 0 oppure null. Mi chiedevo come é meglio organizzare la tabella
    in una situazione del genere.
    Grazie in anticipo

  4. #14
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    682
    function buildThree($parent)
    {
    $sql = "SELECT id, nome_categoria FROM category WHERE subcategory = {$parent}";
    $rs = mysql_query($sql) or die(mysql_error());

    if ($rs) {
    while (list($id, $nome) = mysql_fetch_array($rs)) {
    $sql2 = "SELECT id FROM category WHERE subcategory = {$id}";
    $rs2 = mysql_query($sql2) or die(mysql_errno());

    $total = mysql_num_rows($rs2);

    if ($total) {
    echo'[*]'.$nome.''."\n\r".'<ul>'."\n\r";
    buildThree($id);
    echo"[/list]"."\n\r".""."\n\r";
    } else {
    echo'[*]'.$nome.''."\n\r";
    }
    }
    }
    }

    echo '<ul>';
    buildThree(0);
    echo '[/list]';


    Mi chiedo perché se eseguo questa banale funzione é tutto ok mentre utilizzando
    una classe non riesco ?
    Qualcuno ha esperienza in merito ?

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.