php while loop variable for every third div

后端 未结 4 448
再見小時候
再見小時候 2020-12-10 16:23

Is their a way in a while loop to assign a variable to a class in a div, for every third item in a while loop. I am using the blueprint structure and the third div is at the

相关标签:
4条回答
  • 2020-12-10 17:02
    for ($i = 0; $i < $numRecords; $i++)
    {
     $className = "";
     if (($i % 3) == 0)
     {
      $className = "last"
     }
    
     ....
    }
    

    The key part here is the ($i % 3) == 0.

    EDIT: The following is in response to your comment.

    /* 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 */
    
    0 讨论(0)
  • 2020-12-10 17:02
    $sql = "SELECT * FROM shoeData";
    $results = mysql_query($sql);
    while($row = mysql_fetch_array($results)) {
    
        // whatever code here 
    
    }
    

    It doesn't seem that MySQL is smart enough performing operations while comparing to true value you must specify $sql, $result because it looks like $row = mysql_fetch_array($results) is TRUE so it gets stuck on true loading the first row of data forever.

    0 讨论(0)
  • 2020-12-10 17:18

    If the intention is to do something every X item use modulo. modulo is the remainder of the division and becomes zero if the division is exact an integer.

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

    Of course you can do it with any number.

    0 讨论(0)
  • 2020-12-10 17:28

    If you want to do this on the client-side it can be done with CSS3 (add JS for older browsers [DOMAssistant + Selectivizr]).

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

    0 讨论(0)
提交回复
热议问题