所以我试图建立一个类似于WordPress的类别系统。这基本上是嵌套类别,我想这样做,即一个类别可以拥有的子级没有限制。例如:
祖父 - -父亲 - - - 儿子 ---------孙子 ...
所以我的类别在数据库中(显然),表格是这样的:
CREATE TABLE IF NOT EXISTS `categorias` (`idCategoria` int(11) NOT NULL,`Tipo` int(11) NOT NULL,`Nombre` varchar(50) NOT NULL,`Padre` varchar(100) NOT NULL,`Nivel` int(11) NOT NULL DEFAULT '0') ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
Nivel = Level和Padre = Father(这对我来说是重要的)
我已经制作了一个数组,里面全部都是。
$categorias=array();
for($z=0;$z<$niveles;$z++){
$a=BuscarBD("SELECT * FROM categorias WHERE Nivel='$z' ORDER BY Nombre");
if($a!=0){
for($y=0;$y<count($a);$y++){
if($a[$y]["Padre"]==0){
$indice=$a[$y]["idCategoria"];
}else{
$indice=str_replace("-",'"]["',$a[$y]["Padre"]).'"]["'.$a[$y]["idCategoria"];
}
$categorias{$indice}=$a[$y]["Nombre"];unset($indice);
}unset($y);
}unset($a);
}unset($z);
var_dump($categorias);
var_dump结果是:
array(8) { [7]=> string(6) "Abuela" [1]=> string(6) "Abuelo" ["7"]["8"]=> string(5) "Madre" ["1"]["2"]=> string(5) "Padre" ["1"]["2"]["3"]=> string(4) "Hijo" ["1"]["5"]=> string(3) "Tio" ["1"]["2"]["3"]["4"]=> string(5) "Nieto" ["1"]["5"]["6"]=> string(5) "Primo" }
我的问题是,如果我们实际上不知道它有多少级别,我如何读取数组$ categorias。
对不起代码中的西班牙语,是我的母语