2009-11-27 11 views
6

ist ein Weg in einer while-Schleife, um eine Klasse zu einer Klasse in einem Div für jedes dritte Element in einer while-Schleife zuweisen. Ich benutze die Blueprint-Struktur und das dritte div ist am Ende und ich muss einen "letzten" Klassennamen an jedes dritte div so dritten Div 6. Div 9. Div und so weiter? php while-Schleife Variable für jede dritte 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 */ 

Antwort

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

.... 
} 

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

EDIT: Folgendes ist als Antwort 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 */ 
+0

Hey Im ziemlich neu zu diesem, wie würde ich es oben implementieren, fügte ich meinen Code über –

+0

Awesome Totally Worked –

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

    // whatever code here 

} 

Es scheint nicht, dass MySQL intelligent genug ist, Operationen durchzuführen, während auf wahren Wert zu vergleichen Sie $sql angeben müssen, $result weil es sieht aus wie $row = mysql_fetch_array($results) TRUE ist, so dass es auf einer wahren Belastung klemmt die erste Reihe von Daten für immer.

2

Wenn Sie dies auf der Client-Seite tun möchten, können Sie dies mit CSS3 tun (fügen Sie JS für ältere Browser hinzu [DOMAssistant + Selectivizr]).

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

0

Wenn die Absicht ist, etwas für jeden X Element Verwendung Modulo zu tun. 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 können Sie es mit einer beliebigen Nummer tun.

Verwandte Themen