在每四个mysql表行启动PHP echo

时间:2013-09-15 19:07:07

标签: php mysql

我在数据库中有一组图像网址,我在一个<img>标记中回显,以显示在网站上。

我正在使用bootstrap,我的基本模型设置如下:

<div class="row-fluid gallery">
 <div class="span3">
  <img src="some fancy url here for the image">
 </div>
</div>

现在,如果你曾经使用过bootstrap,你知道span3达到12(基本上当行中显示4个图像时)。您必须从头开始以保持图像全部排成一行。

我在下面有一个PHP脚本,它回显了图像源和上面的布局。问题是,我有超过4个图像来回应。我出于安全目的删除了凭据。

$con=mysqli_connect("localhost","username","password","db_name");
// Check connection
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM gallery");

while($row = mysqli_fetch_array($result))
{
    echo "<div class='row-fluid gallery'>";
        echo "<div class='span3'>";
            echo"<img src='". row['image_url']."'>";    
        echo "</div>";
    echo "</div>";
}

mysqli_close($con);

我的问题是你怎么做:

for every 4th image {
 <div class="row-fluid gallery">
  <div class="span3">
   <img src="some fancy url here for the image">
  </div>
 </div>
}

基本上,我可以用英语说出来,知道我需要什么。但我不能用PHP说出来并让它知道我需要什么。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

在循环外创建一个计数器变量并检查每四个

$i = 1;
while($row = mysqli_fetch_array($result))
{
    // do every time
    if($i % 4 == 0)
    {
        // do only each 4th time
    }
    $i++;
 }

答案 1 :(得分:0)

$counter=0;
while($row = mysqli_fetch_array($result))
{
    echo "<div class='row-fluid gallery'>";
        echo "<div class='span3'>";
            echo"<img src='". row['image_url']."'>";    
        echo "</div>";
    echo "</div>";
    $counter++;
    if (!($counter%4)) 
        // do your fancy staff, this is the forth image
}