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

    Risalire albero categorie

    Salve a tutti,
    come da titolo se ho una tabella categorie strutturata in questo modo:

    id_cat
    parent_id
    sort

    dove la prima categoria ha un parent_id 0, mentre le sue figlie avranno i rispettivi id delle categorie madri, quindi mi posso ritrovare una situazione del genere:

    id_cat = 1
    parent_id = 0
    sort = 1

    -----

    id_cat = 2
    parent_id = 1 //dove fa riferimento alla sua categoria madre
    sort = 1

    -----

    id_cat = 3
    parent_id = 2 //dove fa riferimento alla sua categoria madre
    sort = 1

    e cosi via...

    come faccio partendo dall'ultima categoria ad esempio la categoria con id 3 a sapere tutto l'albero della categoria a quale appartiene, quindi avendo in un array sia l'id 1,2 che 3

    Spero di essere stato abbastanza chiaro.

    Grazie

  2. #2
    Nessuno riesce ad aiutarmi, oppure illuminarmi?
    Grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi semplicemente fare un loop con una SELECT all'interno usando il campo parent_id finchè non diventa 0

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    semplicemente esegui una join verso la stessa tabella e richiama tutti i risultati con un lazy loading delle query... o fai un eager loading come suggerito da eiyen
    sometimes it's just like teaching pigs how to fly

  5. #5
    Grazie, riuscite a farmi un esempio minimale pratico?
    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    Originariamente inviato da intimoviro
    Grazie, riuscite a farmi un esempio minimale pratico?
    Grazie
    semplicemente esegui delle LEFT JOIN verso la stessa tabella.
    sometimes it's just like teaching pigs how to fly

  7. #7
    Quindi dovrei fare cosi?

    Codice PHP:
    $sql "SELECT cat.id_cat FROM categories as cat LEFT JOIN categories as cat2 ON cat.id_cat = cat2.id_cat"
    Giusto?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    esattamente.
    testa la query ovviamente (anche perchè io sono pessimo a scriverle e 9 volte su 10 non vanno mai al primo giro... XD)
    sometimes it's just like teaching pigs how to fly

  9. #9
    Ok, ti faccio sapere quanto prima.

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.