Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Estrazione dei dati ordinati gerarchicamente :: Indice Php

Estrazione dei dati ordinati gerarchicamente

Categoria: Php Inserito il: 21-04-2006 Stampa (4788 click)

Ora che sappiamo come allocare categorie, sottocategorie e informazioni creando e rispettando un ordine gerarchico stabilito all'interno di una base di dati MySQL, non ci resta che affrontare l'ultimo argomento della nostra discussione, la soluzione alla domanda finale: "Come estrarre i dati rispettando l'ordine gerarchico?".

Va da sè che estrarre il nome delle diverse categorie risulta un esercizio abbastanza agevole attuabile attraverso un semplice ciclo, lo stesso dicasi per la possibilità di estrarre tutte le sottocategorie o tutte le informazioni della tabella "Contenuti". Ma non è questo ciò che ci interessa.

In realtà a noi interessa formulare query che ci permettano di sfruttare le ramificazioni rese possibili dalla struttura del nostro database. Quindi, sarà interessante evidenziare come estrarre tutte le sottocategorie relative ad una determinata categoria, tutti i contenuti relativi ad una categoria e infine, tutti i contenuti relativi ad una singola sottocategoria.

Per l'estrazione delle sottocategorie relative ad una categoria potremo utilizzare una comune query SELECT in associazione alla clausola WHERE che ci permetterà di operare una selezione precisa limitata ai dati che ci interessano.
Se per esempio volessimo estrarre soltanto le sottocategorie relative alla categoria "News", potremmo formulare una query sul modello della seguente:

$sql = 'SELECT sottocategoria FROM `sottocategorie` WHERE `id_cat`="1"';
Come ricorderemo da quanto esposto in precedenza, l'Id autoincrementale corrispondente alla categoria chiamata "News" è pari ad "1", quindi la nostra query si spiega in questo modo: "Estrai i valori del campo chiamato sottocategoria dalla tabella 'sottocategorie' dove (WHERE) l'Id della categoria è uguale a "1" (`id_cat`="1").

Un discorso quasi del tutto simile può essere proposto per l'estrazione dei contenuti ralativi ad una determinata categoria; in effetti in questo caso cambiano soltanto il nome del campo sottoposto alla selezione e la tabella sulla quale viene effettuata la query:
$sql = 'SELECT `informazione` FROM `contenuti` WHERE `id_cat`="1"';
Passiamo all'ultima operazione richiesta, l'estrazione delle informazioni appartenenti alla tabella "contenuti" relative ad una singola sottocategoria. Ogni sottocategoria è dotata di un Id autoincrementale che è unico per ognuna di esse; non sarà quindi necessario indicare nell'interrogazione l'Id della categoria di riferimento, ma solo quello della sottocategoria:
$sql = 'SELECT `informazione` FROM `contenuti` WHERE `id_scat`="2"';
La query formulata in esempio ci restituirà il risultato atteso, cioè la stringa "La Juve pareggia in casa del Cagliari." relativa alla sottocategoria "Sport" il cui Id univoco è pari a "2".

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Appena acquistata Raspberry Pi
Questa mattina è arrivato un aggiornamento da parte della RS Components, Raspberry Pi, la nota scheda/computer ultra-economica che è andata... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti