Hace 4 años de este mensaje pero buscando lo mismo he venido a parar a el, al final he tenido que hacer yo la funcion, te la paso por si te sirve, o a cualquier otra persona..
Suponiendo que tienes las categorias en una base de datos asi...
CREATE TABLE `categorias` (
`codigo` int(11) unsigned NOT NULL auto_increment,
`nombre` varchar(255) default NULL,
`padre` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`codigo`)
) TYPE=MyISAM;
insert into `categorias` values
(1,'categoria1',0),
(2,'categoria1.1',1),
(3,'categoria1.1.1',2),
(4,'categoria1.1.2',2),
(5,'categoria2',0),
(6,'categoria2.1',5);
La funcion:
function urhere($codigo,$simbolo='>'){
$sql="select * from categorias where codigo='$codigo'";
$sql=mysql_query($sql);
$categoria=mysql_fetch_array($sql);
if($categoria['padre']==0){
echo $categoria['nombre'];
return;
}
else{
urhere($categoria['padre'],$simbolo);
echo $simbolo.$categoria['nombre'];
}
}
$codigo seria el identificador de la categoria.
$simbolo es el simbolo por el que quieres que se separen, cat > subcat o cat *-Subcat ,, o el que pongas.
Ejemplo de uso.
urhere(4,'>>');
Resultado
categoria1>>categoria1.1>>categoria1.1.2
Si quieres que al pinchar vaya a esa categoria ya te montas tú el link, seria modificando el echo