Frage

Gibt es einen Weg in einer while-Schleife eine Variable zu einer Klasse in einem div, für jedes drittes Element in einer while-Schleife zugeordnet werden. Ich bin mit der Bauplan Struktur und der dritte div ist am Ende und ich brauche ein „letzten“ Klassennamen für jeden dritten div attacht so 3. div 6. div 9. div und so weiter?

/* 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 */
War es hilfreich?

Lösung

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

 ....
}

Der wichtigste Teil ist hier die ($i % 3) == 0.

EDIT:. finden Sie in Reaktion auf Ihren Kommentar

/* 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 */

Andere Tipps

Wenn Sie dies auf der Client-Seite tun wollen, kann es mit CSS3 erfolgen (add JS für älteren Browser [DOMAssistant + Selectivizr]).

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

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

    // whatever code here 

}

Es scheint nicht, dass MySQL ist intelligent genug, Operationen, während im Vergleich zu wahren Wert der Durchführung Sie müssen $sql, $result angeben, da es sieht aus wie $row = mysql_fetch_array($results) TRUE ist, so dass es für immer auf wahren Laden Sie die erste Zeile von Daten stecken bleibt.

Wenn die Absicht etwas Verwendung Modulo zu tun ist, jede X Artikel. Modulo ist der Rest der Division und wird Null, wenn die Division genau eine ganze Zahl ist.

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

Natürlich kann man es mit einer beliebigen Anzahl tun können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top