CODICE PHP
Codice PHP:
<?php
# connessione e selezione al db
// Seleziona tutti i forum e i permessi
$query = 'SELECT f.* ';
$query .= 'FROM forums AS f ';
$query .= 'WHERE 1 ORDER BY f.forum_position, f.forum_id;';
$query = mysql_query($query);
// Divide le categorie dai forum
while ($return = mysql_fetch_assoc($query))
{
if ($return['forum_parent'] == 0)
{
$category[] = $return;
}
else
{
$forums[$return['forum_parent']][] = $return;
}
}
// Verifica se sono presenti categorie
if (is_array($category))
{
// Stampa le categorie
foreach ($category as $value)
{
echo "Categoria: [url='index.php?categoria=$value[forum_id]']$value[forum_title][/url]
";
// Verifica se sono presenti forum in questa categoria
if(is_array($forums[$value['forum_id']]))
{
// Stampa i forum
foreach($forums[$value['forum_id']] as $value2)
{
echo "[url='index.php?forum=$value2[forum_id]']$value2[forum_title][/url]";
echo "
$value2[forum_desc]
";
}
}
}
}
CODICE SQL
codice:
CREATE TABLE `forums` (
`forum_id` smallint(5) unsigned NOT NULL auto_increment,
`forum_parent` smallint(5) unsigned NOT NULL default '0',
-- --------------------------------------------------------
`forum_position` smallint(5) unsigned NOT NULL default '0',
`forum_title` varchar(150) NOT NULL default '',
`forum_desc` text,
PRIMARY KEY(`forum_id`)
) TYPE=MyISAM;
INSERT INTO forums VALUES(1, 0, 1, '1 categoria', '')
INSERT INTO forums VALUES(2, 1, 1, '1 forum', 'desc')
INSERT INTO forums VALUES(3, 1, 1, '2 forum', 'desc')
INSERT INTO forums VALUES(4, 0, 1, '2 categoria', '')
INSERT INTO forums VALUES(5, 4, 1, '3 forum', 'desc')
INSERT INTO forums VALUES(6, 4, 1, '4 forum', 'desc')
INSERT INTO forums VALUES(7, 6, 1, '1 Sub-Forum', 'desc')
FUNZIONAMENTO
Allora in base a "forum_parent" decide se è una categoria o un forum.
E stampa tutto correttamente.
Io però vorrei stampare pure l'ultimo forum, come un sub-forums.
Per capire meglio guardate l'immage: http://img268.imageshack.us/img268/8669/subforums.jpg
Come faccio?