繁体   English   中英

如何获取“ foreach”以显示PHP中每个类别的3个结果?

[英]How to get down 'foreach' to display 3 results from each category in PHP?

我有用于开源的电子商务模板的代码。

你能检查一下吗! 商店正在连续显示3并显示n个! 即..,所有行都被显示。

我有一段代码可以从Db中获取数据并显示商店信息。 ..

我只希望foreach仅限于3个结果。 我还需要一个更多的按钮来尊重它在底部的其他商店,例如“更多>>”。

  <?php 
  if(count($this->store_list)>0){
            foreach($this->store_list as $store){
            ?>
   <div id="menu">         
  <span class="cons_title fl"><a href="<?php echo PATH.'store/'.$store->title_url.'.html'; ?>"><h2><?php echo ucfirst($store->name); ?></h2></a></span>

             <div class="cons_bot fl clr">

                  <ul>
                    <li><h4><?php echo $store->address1; ?>,</h4></li>
                    <li><h4><?php echo $store->address2; ?>,</h4></li>
                    <li><h4><?php echo $store->area_name; ?>,</h4></li>
                    <li><h4><?php echo ucfirst($store->city_name); ?>,</h4></li>
                    <li><h4><?php echo $store->pin; ?></h4></li>
                    <li><h4>PH:</h4><h4><?php echo $store->phone; ?></h4></li>
                  </ul>
                  </div>   <?php
   }
       ?>

改变这个...

foreach($this->store_list as $store){
            ?>

为此...

$number_output = 0;
foreach($this->store_list as $store){
    $number_output++;
    if($number_output > 3) break;
            ?>

您应该在数据库查询中添加LIMIT子句:

SELECT address1, address2, area_name, city_name, pin, phone from TABLE where 1 = 1 LIMIT 3;

这样只会检索3条记录,因此您可以使PHP保持相同。

尝试三次后,让for循环中断。

<?php  
  if(count($this->store_list)>0){ 
  $ctr =1;
        foreach($this->store_list as $store){ 
          if($ctr == 3) break;
        ?> 
   <div id="menu">          
  <span class="cons_title fl"><a href="<?php echo PATH.'store/'.$store->title_url.'.html'; ?>"><h2><?php echo ucfirst($store->name); ?></h2></a></span> 

         <div class="cons_bot fl clr"> 

              <ul> 
                <li><h4><?php echo $store->address1; ?>,</h4></li> 
                <li><h4><?php echo $store->address2; ?>,</h4></li> 
                <li><h4><?php echo $store->area_name; ?>,</h4></li> 
                <li><h4><?php echo ucfirst($store->city_name); ?>,</h4></li> 
                <li><h4><?php echo $store->pin; ?></h4></li> 
                <li><h4>PH:</h4><h4><?php echo $store->phone; ?></h4></li> 
              </ul> 
              </div>   <?php 
  $ctr++; } 
   ?> 

添加以下内容: $countvar=array();

然后,每次执行以下操作:

if(empty($countvar[$store->category]))$countvar[$store->category]=1;
else{if($countvar[$store->category]<3){$countvar[$store->category]++; [DISPLAY THE THINGS]}}

当您在一个地方列出所有商店时就是这种情况。 如果您按类别进行操作,则其他解决方案也可以正常工作。

foreach (array_slice ($this->store_list, 0, 3) as $store)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM