PHP如何while双循环
idfidxmflxmzl1美容养生2医药保健3金银珠宝41美容51化妆62西药72中药83黄金93玉器上面是数据库里的表;如何输出成:[美容养生]美容化妆[医药保健]西...
id fid xmfl xmzl
1 美容养生
2 医药保健
3 金银珠宝
4 1 美容
5 1 化妆
6 2 西药
7 2 中药
8 3 黄金
9 3 玉器
上面是数据库里的表;如何输出成:
[美容养生] 美容 化妆
[医药保健] 西药 中药
[金银珠宝] 黄金 玉器
<?php
include("sql.php");
$mysql="select * from `xmfl`";
$query=mysql_query($mysql);
$row=mysql_fetch_array($query);
$xmfl=$row[xmfl];
$id=$row[id];
while($row=mysql_fetch_array($query)){
if($row[xmfl])
echo "<a href=xm.php?id=$row[id]>[".$row[xmfl]."]</a>";
//第二个循环如何做,才能输出上面的样式呢?
if($row[fid] == $id)
echo "<a href=xm.php?id=$row[id]>".$row[xmzl]."</a>";
}
}
echo "<br/>";
?>
<?php
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 "<a href=ind.php?id=$row[id]>[".$xmfl."]</a>";
while($row=mysql_fetch_array($query)){
echo "<a href=xm.php?id=$row[id]>".$row[xmzl]."</a>";
}
echo "<br/>";
}
?>
现在只能输出成:[美容养生] 美容 化妆
后面的就不循环了,我不知哪儿出问题了,求高手指点! 展开
1 美容养生
2 医药保健
3 金银珠宝
4 1 美容
5 1 化妆
6 2 西药
7 2 中药
8 3 黄金
9 3 玉器
上面是数据库里的表;如何输出成:
[美容养生] 美容 化妆
[医药保健] 西药 中药
[金银珠宝] 黄金 玉器
<?php
include("sql.php");
$mysql="select * from `xmfl`";
$query=mysql_query($mysql);
$row=mysql_fetch_array($query);
$xmfl=$row[xmfl];
$id=$row[id];
while($row=mysql_fetch_array($query)){
if($row[xmfl])
echo "<a href=xm.php?id=$row[id]>[".$row[xmfl]."]</a>";
//第二个循环如何做,才能输出上面的样式呢?
if($row[fid] == $id)
echo "<a href=xm.php?id=$row[id]>".$row[xmzl]."</a>";
}
}
echo "<br/>";
?>
<?php
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 "<a href=ind.php?id=$row[id]>[".$xmfl."]</a>";
while($row=mysql_fetch_array($query)){
echo "<a href=xm.php?id=$row[id]>".$row[xmzl]."</a>";
}
echo "<br/>";
}
?>
现在只能输出成:[美容养生] 美容 化妆
后面的就不循环了,我不知哪儿出问题了,求高手指点! 展开
7个回答
展开全部
这个比较简单的呀.如果固定两层,嵌个循环就行,也可以用递归.
你里面再加一条SQL才行.
<?php
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 "<a href=ind.php?id=$row[id]>[".$xmfl."]</a>";
//这里加一条.
mysql_query("select * from xmfl where fid=$id");
while($row=mysql_fetch_array($query)){
echo "<a href=xm.php?id=$row[id]>".$row[xmzl]."</a>";
}
echo "<br/>";
}
?>
你里面再加一条SQL才行.
<?php
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 "<a href=ind.php?id=$row[id]>[".$xmfl."]</a>";
//这里加一条.
mysql_query("select * from xmfl where fid=$id");
while($row=mysql_fetch_array($query)){
echo "<a href=xm.php?id=$row[id]>".$row[xmzl]."</a>";
}
echo "<br/>";
}
?>
展开全部
先不管 子类 直接循环大类 这样就是
[美容养生]
[医药保健]
[金银珠宝]
每一个大类会有一个对应的大类ID 也就是1 2 3 在你循环的时候是可以取出来的
然后在 循环的里面 以 大类的ID 读取数据表 分列循环 出来 思路是这样如果不明白可以HI 我
[美容养生]
[医药保健]
[金银珠宝]
每一个大类会有一个对应的大类ID 也就是1 2 3 在你循环的时候是可以取出来的
然后在 循环的里面 以 大类的ID 读取数据表 分列循环 出来 思路是这样如果不明白可以HI 我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
$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 "<br>";
}
else
continue;
}
//调试过,
$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 "<br>";
}
else
continue;
}
//调试过,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的实现分两步 sql语句需要加order by fid asc,不然下面的整理数据会乱
1,整理从数据库取出的数据:
while($row=mysql_fetch_array($query)){
if($row['fid']>0){//子类别
$arr[$row['fid']][]="<a href=xm.php?id={$row['id']}>{$row['xmzl']}</a>";
}else{//父类别
$arr[$row['id']][]="<a href=xm.php?id={$row['id']}>[{$row['xmfl']}]</a>";
}
}
2,打印数据
forecah($arr as $v){
echo implode(" ",$v)."<br />";//用一个空格符连接
}
建议你写程序时数组key加引号,如$arr['id'],这是一个好习惯,程序的移植性也比较好
1,整理从数据库取出的数据:
while($row=mysql_fetch_array($query)){
if($row['fid']>0){//子类别
$arr[$row['fid']][]="<a href=xm.php?id={$row['id']}>{$row['xmzl']}</a>";
}else{//父类别
$arr[$row['id']][]="<a href=xm.php?id={$row['id']}>[{$row['xmfl']}]</a>";
}
}
2,打印数据
forecah($arr as $v){
echo implode(" ",$v)."<br />";//用一个空格符连接
}
建议你写程序时数组key加引号,如$arr['id'],这是一个好习惯,程序的移植性也比较好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个比较简单的呀.如果固定两层,嵌个循环就行,也可以用递归.
你里面再加一条SQL才行.
<?php
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
"<a
href=ind.php?id=$row[id]>[".$xmfl."]</a>";
//这里加一条.
mysql_query("select
*
from
xmfl
where
fid=$id");
while($row=mysql_fetch_array($query)){
echo
"<a
href=xm.php?id=$row[id]>".$row[xmzl]."</a>";
}
echo
"<br/>";
}
?>
你里面再加一条SQL才行.
<?php
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
"<a
href=ind.php?id=$row[id]>[".$xmfl."]</a>";
//这里加一条.
mysql_query("select
*
from
xmfl
where
fid=$id");
while($row=mysql_fetch_array($query)){
echo
"<a
href=xm.php?id=$row[id]>".$row[xmzl]."</a>";
}
echo
"<br/>";
}
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询