Является ли их способ в цикле while назначать переменную классу в div для каждого третьего элемента в цикле while. Я использую структуру чертежа, и третий div находится в конце, и мне нужно привязать «последнее» имя класса к каждому третьему div, так что третий 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 */
for ($i = 0; $i < $numRecords; $i++) { $className = ""; if (($i % 3) == 0) { $className = "last" } .... }
Ключевой частью здесь является ($i % 3) == 0
.
EDIT: В ответ на ваш комментарий следуют следующие.
/* 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 */
Если вы хотите сделать это на стороне клиента, это можно сделать с помощью CSS3 (добавьте JS для более старых браузеров [DOMAssistant + Selectivizr]).
CSS: div.imageBorder:nth-child(3n) { /* style attributes will be applied to every 3rd div */ }
: 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 }
Не похоже, что MySQL достаточно умный, чтобы выполнять операции, сравнивая с истинным значением, вы должны указать $sql
, $result
потому что он выглядит так: $row = mysql_fetch_array($results)
TRUE, поэтому он застревает в истинной загрузке первой строки данные навсегда.
Если намерение состоит в том, чтобы делать что-то, каждый элемент X использует по модулю. modulo является остатком деления и обращается в нуль, если деление является точным целым числом.
if(!($counter%3)) { // this is 3 6 9 etc. } $counter++;
Конечно, вы можете сделать это с любым числом.