Estructura de árbol de clasificación multinivel PHP MYSQL
Abre una base de datos no escrita.
Acabo de escribir uno hace unos días.
Echa un vistazo
/* Estructura de tabla
Crear tabla `lh_categroy` ( `id` int(10) NOT NULL autoo_increment, `parentid` int(6) NOT NULL, `name ` varchar(255) NOT NULL, `palabra clave` varchar(255) NOT NULL COMMENT 'palabra clave', `des` varchar(255) NOT NULL COMENTARIO 'descripción', CLAVE PRIMARIA ?(id`), CLAVE ÚNICA `nombre` ( `name`)
)ENGINE=MyISAM AUTO_INCREMENT=44 DEFAULT CHARSET=utf8;
*/
/** * Obtener una lista ordenada de todas las columnas * @return array */
función getAllOrderColumns($id = 0) {
global $columnas;
$resultado = array();
if ($id) $resultado[$id] = $columnas[$id]
foreach ($columnas como $columna) {
if ($columna; [ 'parentid'] == $id) {
$columna['nivel'] = 0;
$resultado[$ columna['id']] = $columna;
getColumns($columnas, $columna['id'], $resultado, 1);
}
}
Volver $ resultado;
}
función getColumns($columnas, $cid, &$resultado, $l = 1) {
foreach ($columnas como $ c) {
if ($c['parentid'] == $cid) {
$c['level' ] = $l;
$resultado[$c['id']] = $c;
getColumns($columnas, $c['id'], $resultado, $l + 1);
}
}
}
$sql = 'seleccionar * de lh_categroy'
$query = mysql_query($sql ) ;
mientras($fila = mysql_fetch_assoc($consulta)){
$columnas[]=$fila;
}
$fenlei = ' ';
$fenlei = ?'
';
foreach( getAllOrderColumns() as $v){
$v[nombre]=$v[nivel]? ($v[nivel]==1 ? ' &
;nbsp;|-'.$v[nombre]: ' |-'.$v[nombre]):$v[nombre];
$fenlei . valor de opción ='$v[id]'>$v[nombre]";
}
$fenlei . = ''; p>
echo $fenlei;