-4

I want to fetch some data from database in the form of list. Following is my loop:

<div class="col-sm-4">
<ul>
<?php
foreach($subjects as $s)
{
echo "<li>$s->subject_title</li>";
}
?>
</u>
</div>

Now this loop prints data in one column and the user have to scroll down to view the last elements. I want to control the loop in such a way that after printing first 10 elements, it must start again from the div tag and print the next 10 elements and so on. I want to show the data in such a way that the user don't have to scroll down.

For example, I want to print the data in the following way:

enter image description here

I write the following code but it is not working. The div tag is only applied to the first 10 elements, and not on the rest of the data.

  <div class="col-sm-6">
            <ul class="filter-list">
                         <?php
                         $i = 0;
                         foreach($main_subjs as $i=>$ms)
                         {
                         if($i == 10) {
                         echo "</ul></div><div class='col-sm-6'><ul>";
                         $i++;
                         continue;
                         }
                         echo "<li><a href='#'>$ms->mains_title</a></li>";
                         }
                         ?>
            </ul>
                    </div> 

Please Help.

Ajmal Razeel
  • 1,663
  • 7
  • 27
  • 51

1 Answers1

1

As an arugment for a loop you can also use the key of array

foreach($subjects as $i=>$s)

When you will be able to "control" your loop, e.g.:

<div>
<?php
foreach($subjects as $i=>$s) {
  if($i> 0 && $i % 5 == 0) {
    echo "</div><div>";
  }
  echo "<li>$s->subject_title</li>";
}
?>
</div>