这个比较简单的呀.如果固定两层,嵌个循环就行,也可以用递归.
你里面再加一条SQL才行.
include("sql.php");
$mysql="select * from `xmfl`";
$query=mysql_query($mysql);
while($row=mysql_fetch_array($query)){
$xmfl=$row[xmfl];
$id=$row[id];
$fid=$row[fid];
if($xmfl)
echo "[".$xmfl."]";
//这里加一条.
mysql_query("select * from xmfl where fid=$id");
while($row=mysql_fetch_array($query)){
echo "".$row[xmzl]."";
}
echo "
";
}
?>
先不管 子类 直接循环大类 这样就是
[美容养生]
[医药保健]
[金银珠宝]
每一个大类会有一个对应的大类ID 也就是1 2 3 在你循环的时候是可以取出来的
然后在 循环的里面 以 大类的ID 读取数据表 分列循环 出来 思路是这样如果不明白可以HI 我
$arr=array(
array('id'=>1,'fid'=>'','xmf1'=>'美容养生','xmzl'=>''),
array('id'=>2,'fid'=>'','xmf1'=>'医药保健','xmzl'=>''),
array('id'=>3,'fid'=>'','xmf1'=>'金银珠宝','xmzl'=>''),
array('id'=>4,'fid'=>1,'xmf1'=>'','xmzl'=>'美容'),
array('id'=>5,'fid'=>1,'xmf1'=>'','xmzl'=>'化妆'),
array('id'=>6,'fid'=>2,'xmf1'=>'','xmzl'=>'西药'),
array('id'=>7,'fid'=>2,'xmf1'=>'','xmzl'=>'中药'),
array('id'=>8,'fid'=>3,'xmf1'=>'','xmzl'=>'黄金'),
array('id'=>9,'fid'=>3,'xmf1'=>'','xmzl'=>'玉器')
);
// while($res=mysql_fetch_array($query))
// $arr[]=$res;
foreach($arr as $k=>$v)
{
if($v['fid']=='')
{
echo "[".$v['xmf1']."]\t\t";
foreach($arr as $k1=>$v1)
{
if($v1['fid']==$v['id'])
echo $v1['xmzl']."\t\t";
}
echo "
";
}
else
continue;
}
//调试过,
我的实现分两步 sql语句需要加order by fid asc,不然下面的整理数据会乱
1,整理从数据库取出的数据:
while($row=mysql_fetch_array($query)){
if($row['fid']>0){//子类别
$arr[$row['fid']][]="{$row['xmzl']}";
}else{//父类别
$arr[$row['id']][]="[{$row['xmfl']}]";
}
}
2,打印数据
forecah($arr as $v){
echo implode(" ",$v)."
";//用一个空格符连接
}
建议你写程序时数组key加引号,如$arr['id'],这是一个好习惯,程序的移植性也比较好
这个比较简单的呀.如果固定两层,嵌个循环就行,也可以用递归.
你里面再加一条SQL才行.
include("sql.php");
$mysql="select
*
from
`xmfl`";
$query=mysql_query($mysql);
while($row=mysql_fetch_array($query)){
$xmfl=$row[xmfl];
$id=$row[id];
$fid=$row[fid];
if($xmfl)
echo
"href=ind.php?id=$row[id]>[".$xmfl."]";
//这里加一条.
mysql_query("select
*
from
xmfl
where
fid=$id");
while($row=mysql_fetch_array($query)){
echo
"href=xm.php?id=$row[id]>".$row[xmzl]."";
}
echo
"
";
}
?>