关于PHP 中while嵌套循环问题,求解决 20

想实现这样的功能产品类别一产品1产品2产品类别二产品1产品2结果是这样产品类别一产品1产品2产品类别二产品1(产品类别一)产品2(产品类别一)... 想实现这样的功能
产品类别一
产品1
产品2
产品类别二
产品1
产品2
结果是这样
产品类别一
产品1
产品2
产品类别二
产品1 (产品类别一)
产品2 (产品类别一)
展开
 我来答
小菜菜yr
2014-09-20 · 超过26用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:24.2万
展开全部

数据库

PHP处理部分

public function index(){

//我这里用的thinkPHP框架,不知道你是原生还是什么,就简单说一下思路。

$tb_type = M("Type");

$tb_product = M("Products");//这里我是实例化我的数据表,说通俗点就是连接数据库,指定某个表

$types = $tb_type->select();   //这里是在我的products表中进行select查询,而且得到的$types是一个二维数组

foreach($types as $key=>$type){  //这里foreache循环遍历$types,为了取到$type得id号,以此作为条件去产品信息表中进行查询

$where["typeid"] = $type["typeid"];   //这里是where条件,如果是原生的就相当于$where="where typeid = ".$type["id"];

$products = $tb_product->where($where)->select();   //这个sql语句转换为原生是$sql = "select * from tb_products where typeid=".$value['typeid'];

$types[$key]["products"] = $products;//出现你那种情况的主要原因是数组的重构这里,我把得到的产品信息的二维数组与先得到的类别信息的数组进行组合

                                     //因为$types是一个二维数组,键值默认为0  1  2   3内部数组的键值是数据库字段的值,这里我将紧挨着数据库

                                     //字段的值给内部的一维数组添加一个除了数据库字段的值之外的products键,是为了你能够顺利的循环输出在模板页面

}

$this->assign("info",$types);

$this->display();

}





最终的结果

匿名用户
2014-09-20
展开全部
数据库字段是咋样的?
function get_goods_by_cat($cat){
//$sql="select g from cg where cat=$cat";
//查询自己写
return array("商品1","商品2");
}
function get_cat_by_goods($g){
//$sql="select cat from cg where g=$g";
//查询自己写
return array("分类1","分类2");
}
function get_all_category(){
//$sql="select distinct cat from cg";
//查询自己写
return array("分类1", "分类2");
}
$categorys = get_all_category();
$i = 0;
foreach($categorys as $cat){
echo $cat;
echo "<br>";
$goods = get_goods_by_cat($cat);
foreach($goods as $g){
echo $g;
if($i > 0){
$c_by_g = get_cat_by_goods($g);
echo '(' . $c_by_g[0] . ')';
}
echo "<br>";
$i++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcswsm
2014-09-20 · TA获得超过488个赞
知道小有建树答主
回答量:716
采纳率:0%
帮助的人:507万
展开全部
这些数据是从数据库里查询出来的么?
追问
当然是了
追答
while循环里嵌套 for循环 
"产品类别一","category2"=>"产品类别二");
$goods=array("category1"=>array("商品一","商品二"),"category2"=>array("商品三","商品四"));
$count=count($cate);
$x=1;
while($x";
foreach($goods['category'.$x] as $g){
echo $g;
echo "";
}

$x++;
continue;
}
unset($goods['category1']);
?>
这只是一个思路
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式