PHP while while loop ariable마다 세 번째 div
-
05-07-2019 - |
문제
타운 루프의 세 번째 항목마다 DIV의 클래스에 변수를 할당하는 방법입니다. Blueprint 구조를 사용하고 있으며 세 번째 Div는 끝에 있으며 세 번째 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
.
편집하다: 다음은 귀하의 의견에 대한 응답입니다.
/* 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 */ }
$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)
사실이므로 첫 번째 데이터 행을 영원히로드하는 데 붙어 있습니다.
의도가 모든 X 항목을 사용하는 것이라면 모듈로를 사용합니다. 모듈로는 나머지 부서이며 부서가 정확한 정수라면 0이됩니다.
if(!($counter%3)) {
// this is 3 6 9 etc.
}
$counter++;
물론 어떤 번호로든 할 수 있습니다.
제휴하지 않습니다 StackOverflow