マルチユーザー モール システムを使用しています。現在、第 1 レベルのストア カテゴリの下にある第 2 レベルのカテゴリを循環させ、同時に現在の第 2 レベルのカテゴリ内の推奨ストアを自動的に読み取りたいと考えています。第 2 レベルのカテゴリはどう書けばよいでしょうか?以下に示すように:
コードは次のとおりです:
<div class="louceng"> <?php if(!empty($output['class_list']) && is_array($output['class_list'])){ $i = 0; ?> <?php foreach($output['class_list'] as $k=>$v){ $i++; ?> <div class="floor_area"> <?php if ($_GET['cate_id'] == $v['sc_parent_id']){ ?> <h2><?php echo $i;?>F <?php echo $v['sc_name'];?></h2> <?php if(!empty($output['store_list']) && is_array($output['store_list'])){?> <ul> <?php foreach($output['store_list'] as $skey => $store){?> <li><a href="<?php echo ncUrl(array('act'=>'show_store','id'=>$store['store_id']),'store',$store['store_domain']);?>" title="" target="_blank"><span class="thumb size72"> <img src="<?php echo SiteUrl.'/'.(ATTACH_PATH.DS.'ad'.DS.$store['shopad']);?>" onload="javascript:DrawImage(this,240,240);" /></span></a> </li> <?php }?> </ul> <div class="clear"></div> <?php }?> <?php }elseif (!isset($v['child']) && $output['class_list'][$_GET['cate_id']]['sc_parent_id'] == $v['sc_parent_id']){?> <h2><?php echo $v['sc_name'];?></h2> <?php }?> </div> <?php }?> <?php }?></div>
あなたのコードは実装できませんか? $output の内容を投稿
$i++; in foreach($output['class_list'] as $k=>$v){ ループ内で無条件に実行
echo $i in if ($_GET['cate_id'; ] == $v['sc_parent_id']){ ブランチ内で条件付き実行
条件が真でない可能性があるため、echo $i; は連続しない可能性があります
$i はシーケンス番号を表すため、$i++ の 9 行
を削除し、14 行目の echo $i; を echo ++$i に変更します
$v){
ここにループが 1 つしかなく、$i=0 を初期化しない限り、なぜ 1 から始まるのでしょうか?
コードが機能しませんか? $output の内容を投稿
$i++; in foreach($output['class_list'] as $k=>$v){ ループ内で無条件に実行
条件が真でない可能性があるため、echo $i; は連続しない可能性があります
$i はシーケンス番号を表すため、$i++ の 9 行を削除する必要があります
そして 14 行目の echo $i; は echo ++$i に変更されます
あなたのコードは実装できませんか? $output の内容を投稿
$i++; in foreach($output['class_list'] as $k=>$v){ ループ内で無条件に実行
echo $i in if ($_GET['cate_id'; ] == $v['sc_parent_id']){ ブランチ内で条件付き実行
条件が真でない可能性があるため、echo $i; は連続しない可能性があります
$i はシーケンス番号を表すため、$i++ の 9 行削除する必要があります
$i はすでに正常です、ありがとうございます。サブカテゴリのおすすめストアの見方を教えてください。初心者ですが、ハイハンお願いします
あなたのコードは実装できませんか? $output の内容を投稿
$i++; in foreach($output['class_list'] as $k=>$v){ ループ内で無条件に実行
echo $i in if ($_GET['cate_id'; ] == $v['sc_parent_id']){ ブランチ内で条件付き実行
条件が真でない可能性があるため、echo $i; は連続しない可能性があります
$i はシーケンス番号を表すため、$i++ の 9 行削除する必要があります
そして、14 行目の echo $i; を echo ++$i に変更しました
に変更しました) ; $store)
$condition['store_state'] = 1;
$condition['sc_id'] = 66; $condition)-> ;order($order)->page(10)->select();
これで、sc_id=66 でストアを読み取ることができますが、現在のカテゴリ ID を取得してフィルターするにはどうすればよいでしょうか? 現在のカテゴリの sc_id を取得できるようです
$output の内容 (少なくとも完全なセクション) を投稿し、どれをどこに配置するかを説明する必要があります
你应该贴出 $output 的内容(至少需要完整的一节),并说明哪个要放在哪里
下面的代码是模板文件的,如何将第一个循环中的$k值传递到第二个循环中的 $where .= "$sc_id = $k"; 件红色部分。
3楼我贴出的是PHP的处理文件
要看到你的数据!
光看代码有什么用?如果代码就写错了呢
经验证上面的方法不行,
模板文件的代码是:
<div class="louceng"> <?php if(!empty($output['class_list']) && is_array($output['class_list'])){ $i = 0; ?> <?php foreach($output['class_list'] as $k=>$v){ ?> <div class="floor_area"> <?php if ($_GET['cate_id'] == $v['sc_parent_id']){ $Sid= $k; ?> <h2><?php echo ++$i;?>F <?php echo $v['cate_id'];?> <?php echo $v['sc_name'];?><a href="<?php echo ncUrl(array('act'=>'shop_search','cate_id'=>$k));?>" style="float:right" target="_blank">更多..</a></h2> <?php if(!empty($output['store_list']) && is_array($output['store_list'])){?> <ul> <?php foreach($output['store_list'] as $skey => $store){?> <li><?php echo $Sid;?><a href="<?php echo ncUrl(array('act'=>'show_store','id'=>$store['store_id']),'store',$store['store_domain']);?>" title="" target="_blank"><span class="thumb size72"> <img src="<?php echo SiteUrl.'/'.(ATTACH_PATH.DS.'ad'.DS.$store['shopad']);?>" onload="javascript:DrawImage(this,240,240);" /></span></a> </li> <?php }?> </ul> <div class="clear"></div> <?php }?> <?php }elseif (!isset($v['child']) && $output['class_list'][$_GET['cate_id']]['sc_parent_id'] == $v['sc_parent_id']){?> <h2><?php echo $v['sc_name'];?></h2> <?php }?> </div> <?php }?> <?php }?></div>
//店铺搜索 $model = Model(); $condition = array(); $keyword = trim($_GET['keyword']); if(C('fullindexer.open') && !empty($keyword)){ //全文搜索 $condition = $this->full_search($keyword); }else{ if ($keyword != ''){ $condition['store_name|store_zy'] = array('like','%'.$keyword.'%'); } if ($_GET['user_name'] != ''){ $condition['member_name'] = trim($_GET['user_name']); } } if (!empty($_GET['area_id'])){ $condition['area_id'] = array('in',$this->getAreaNextId(intval($_GET['area_id']))); } if ($_GET['cate_id'] > 0){ $child = array_merge((array)$class_list[$_GET['cate_id']]['child'],array($_GET['cate_id'])); $condition['sc_id'] = array('in',$child); } $storeid=array($Sid); $condition['store_state'] = 1; $condition['store_recommend'] = 1; if (!in_array($_GET['order'],array('desc','asc'))){ unset($_GET['order']); } if (!in_array($_GET['key'],array('store_sales','store_credit'))){ unset($_GET['key']); } if(is_null($_GET['key'])){ $order = 'store_sort asc'; }else{ $order = $_GET['key'].' '.$_GET['order']; } if (isset($condition['store.store_id'])){ $condition['store_id'] = $condition['store.store_id'];unset($condition['store.store_id']); } $model_store = Model('store');// $store_list = $model_store->where($condition)->order($order)->page(10)->select(); 20140408 bak $store_list = $model_store->where($condition)->order($order)->page(10)->select(); //获取店铺商品数,推荐商品列表等信息 $store_list = $model_store->getStoreSearchList($store_list); Tpl::output('store_list',$store_list); Tpl::output('show_page',$model->showpage(2));
查询是要按按显示的要求进行的
你只要打印出查询得到的最终数据,就可知道是否符合显示的要求
二次开发的话,可以调用系统栏目的函数啊,不用自己写
自己解决了,用了一个很笨的办法 用if进行判断!!代码如下:红色部分
$i = 0;
?>
$v){
?>