每个第三个div的php while循环变量

时间:2009-11-27 03:14:06

标签: php mysql while-loop

他们是一个在while循环中的方式,为div中的一个类分配一个变量,对于while循环中的每三个项目。我正在使用蓝图结构,第三个div在最后,我需要为每个第三个div添加一个“最后”类名,所以第3个div第6个div第9个div等等?

/* LOOP THROUGH SHOEDATA TABLE */

$results = mysql_query("SELECT * FROM shoeData");


while($row = mysql_fetch_array($results)){

$name = $row['name'];
$about = $row['about'];
$company = $row['company'];
$buy = $row['buy'];
$tags = $row['tags'];
$id = $row['id'];
$image = $row['image'];


/* ECHO THE SHOEDATA RESULTS */     

    echo "<div class='imageBorder span-8 column'>";
        echo "<div id='imageHeight'>";
        echo "<img  src='thumbs/$image'>";
        echo "</div>";

        echo "<ul>";

            echo "<li>$name</l1>";
            echo "<li>$about</l1>";
            echo "<li>$company</l1>";
            echo "<li><a href='$buy'>BUY</a></l1>";
            echo "<li>$tags</l1>";
        echo "</ul>";
    echo "</div>";


}/*SHOEDATA WHILE LOOP ENDS */

4 个答案:

答案 0 :(得分:29)

for ($i = 0; $i < $numRecords; $i++)
{
 $className = "";
 if (($i % 3) == 0)
 {
  $className = "last"
 }

 ....
}

这里的关键部分是($i % 3) == 0

编辑:以下内容是对您的评论的回应。

/* LOOP THROUGH SHOEDATA TABLE */

$results = mysql_query("SELECT * FROM shoeData");

$i = 0;
while($row = mysql_fetch_array($results)){
$i++;
$name = $row['name'];
$about = $row['about'];
$company = $row['company'];
$buy = $row['buy'];
$tags = $row['tags'];
$id = $row['id'];
$image = $row['image'];


/* ECHO THE SHOEDATA RESULTS */         
    $additionalClass = ($i % 3) == 0 ? " last" : "";
    echo "<div class='imageBorder span-8 column" . $additionalClass . "'>";
        echo "<div id='imageHeight'>";
        echo "<img  src='thumbs/$image'>";
        echo "</div>";

        echo "<ul>";

                echo "<li>$name</l1>";
                echo "<li>$about</l1>";
                echo "<li>$company</l1>";
                echo "<li><a href='$buy'>BUY</a></l1>";
                echo "<li>$tags</l1>";
        echo "</ul>";
    echo "</div>";


}/*SHOEDATA WHILE LOOP ENDS */

答案 1 :(得分:2)

如果您想在客户端执行此操作,可以使用CSS3(为旧浏览器添加JS [DOMAssistant + Selectivizr])。

CSS:div.imageBorder:nth-child(3n) { /* style attributes will be applied to every 3rd div */ }

答案 2 :(得分:1)

$sql = "SELECT * FROM shoeData";
$results = mysql_query($sql);
while($row = mysql_fetch_array($results)) {

    // whatever code here 

}

与真实值相比,MySQL似乎没有足够的智能执行操作 您必须指定$sql$result因为看起来$row = mysql_fetch_array($results)为TRUE所以它会被卡在真正加载第一行数据上。

答案 3 :(得分:0)

如果打算每个X项都做一些事情,请使用modulo。 modulo是除法的余数,如果除法是一个整数,则变为零。

if(!($counter%3)) {
    // this is 3 6 9 etc.
}
$counter++;

当然你可以用任何数字来做。