Allora ragazzi, ho un problema che riguarda entrambe le cose (PHP e MySQL) ma credo che quello che mi fa casini è MySQL...
Ho una tabella così strutturata:
Codice PHP:
CREATE TABLE mkp_guida (
id INT(10) AUTO_INCREMENT,
idcategoria INT(10) NOT NULL DEFAULT '0',
idautore INT(10) NOT NULL DEFAULT '0',
titolo VARCHAR(255) NOT NULL,
autore VARCHAR(34) NOT NULL,
testo TEXT NOT NULL,
data INT(10),
validate TINYINT(1) DEFAULT '1',
padre INT(10) DEFAULT '0',
PRIMARY KEY (id),
FOREIGN KEY (idcategoria) REFERENCES mkp_guida_sections(id)
);
Quello che ci interessa è:
Codice PHP:
mkp_guida [ id, titolo, padre ]
dove:
ID è l'identificativo di una guida
TITOLO è il titolo della guida
PADRE è uguale a zero se la guida è la radice per altre guide, mentre se diverso da 0 può essere uguale ad uno degli altri ID ed indica che questa guida è figlia di quella con ID = PADRE
Quello che voglio fare è costruire un albero di guide (forse meglio dire una foresta) che ha come radici le guide che hanno PADRE=0 e si ramifica nei vari figli.
Esempio:
INSERT INTO mkp_guida VALUES ( '1', 'Guida 1', '0');
INSERT INTO mkp_guida VALUES ( '2', 'Guida 1_2', '1');
INSERT INTO mkp_guida VALUES ( '3', 'Guida 1_2_1', '2');
INSERT INTO mkp_guida VALUES ( '4', 'Guida 2', '0');
INSERT INTO mkp_guida VALUES ( '5', 'Guida 2_1', '4');
INSERT INTO mkp_guida VALUES ( '6', 'Guida 3', '0');
Il risultato deve essere:
-Guida 1
----Guida 1_2
--------Guida 1_2_1
-Guida 2
----Guida 2_1
-Guida 3
ho quindi creato in php due funzioni di cui una ricorsiva...solo che non mi esce per niente questo risultato....qualcuno può aiutarmi?