Crag
Crag

Reputation: 107

close div tag after 4 entries - mysql loop

i want my script to add a closing div tag after every fourth entrie of the db. i tried something like this:

<div class="row">
$ergebnis = $mysqli->query("SELECT name FROM pages Where city = '1';");

while($zeile = $ergebnis->fetch_array()) {


echo "<div class=\"col-sm-4 col-md-3\">
echo "<h3>".$zeile['name']."</h3>";
..
echo "</div>";

$i=0;
i++;
if ($i == 4){
echo "</div>";}

}
?>

would be great if you can help me here. thx

Upvotes: 0

Views: 662

Answers (2)

SHAKIR SHABBIR
SHAKIR SHABBIR

Reputation: 1295

1) Get names of all cities

2) Initiate an indexing variable

3) Ieterate through the loop

4) Open <div class="row"> when $i==0 (Very First time) OR $i%4==0 (When fifth entry is to be printed). (Remember you are using 0 based indexing i.e. initializing $i=0).

5) Close the div tag for <div class="row"> when fourth city name has been printed i.e. $i%3==0 (Remember you are using 0 based indexing i.e. initializing $i=0).

Here's the code:

<?php

    $ergebnis = $mysqli->query("SELECT name FROM pages Where city = '1';");

    $i=0;

    while($zeile = $ergebnis->fetch_array()) {   

        if ($i == 0 || $i%4==0){ // <div class="row"> opens on first entry and every fifth entry
            echo "<div class=\"row\">"; 
        }

        echo "<div class=\"col-sm-4 col-md-3\">";
        echo "<h3>".$zeile['name']."</h3>";
        /*
            Rest of your code
        */
        echo "</div>";

        $i++;
        if ($i % 3 == 0){
            echo "</div>"; // <div class="row"> closes here on every fourth entry
        }

    }
?>

Upvotes: 2

Jaykumar Patel
Jaykumar Patel

Reputation: 27614

Try this code,

<div class="row">
$ergebnis = $mysqli->query("SELECT name FROM pages Where city = '1';");

$i=0;  
while($zeile = $ergebnis->fetch_array()) {
      echo "<div class=\"col-sm-4 col-md-3\">
      echo "<h3>".$zeile['name']."</h3>";
      ..
      echo "</div>";

     $i++;
     if ($i == 4){
          echo "</div>";
          $i = 0;
     }
}
?>

Upvotes: 2

Related Questions