关于PHP 中while嵌套循环问题,求解决 20
产品类别一
产品1
产品2
产品类别二
产品1
产品2
结果是这样
产品类别一
产品1
产品2
产品类别二
产品1 (产品类别一)
产品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++;
}
}
当然是了
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']);
?>
这只是一个思路