簡體   English   中英

與PHP中的不同div類循環的圖像

[英]Images in loop with different div class in PHP

假設我有像下面這樣的代碼

<?php 
$sql = "SELECT * FROM images";
$query = mysql_query($sql);

while($row = mysql_fetch_assoc($query)) {
    echo '<div class="single">';
    echo '<img src="'.$row['image'].'" alt="'.$row['title'].' " />';
    echo '</div>';
} 
?>

我想在每組5張圖片的div類<div class="single">中附加firstlast

<div class="single first">
    <img src="image1.jpg" alt="title1" />
</div>

<div class="single">
    <img src="image2.jpg" alt="title2" />
</div>

<div class="single">
    <img src="image3.jpg" alt="title3" />
</div>

<div class="single">
    <img src="image4.jpg" alt="title4" />
</div>

<div class="single last">
    <img src="image5.jpg" alt="title5" />
</div>

如何通過循環做到這一點,請幫忙,

謝謝 :)

使用

<?php 
$sql = "SELECT * FROM images";
$query = mysql_query($sql);

$i = 0;
$class = "";

while($row = mysql_fetch_assoc($query)) {

    if($i % 5 == 0){
        $class = 'first';
    }else if($i % 5 == 4){
        $class = 'last';
    }else{
        $class = "";
    }

    echo '<div class="single ' . $class . '">';
    echo '<img src="'.$row['image'].'" alt="'.$row['title'].' " />';
    echo '</div>';

    $i++;
} 
?>
<?php 
$sql = "SELECT * FROM images";
$query = mysql_query($sql);

$x=0; 
while($row = mysql_fetch_assoc($query)) {
    $x++;
    if ( $x == 1 ) { $c = ' first'; } 
        elseif ( $x == 5 ) { $c = ' last'; }
        else { $c = ''; }

    echo '<div class="single' . $c . '">';
    echo '<img src="'.$row['image'].'" alt="'.$row['title'].' " />';
    echo '</div>';
} 
?>

這個怎么樣:

$index = 0;
while($row = mysql_fetch_assoc($query)) {
    $classes = 'single';
    switch ($index % 5) {
      case 0:
        $classes .= ' first';
        break;
      case 4:
        $classes .= ' last';            
        break;
    }
    echo <<<HTML
<div class="$classes">
  <img src="{$row['image']}" alt="{$row['title']}" />
</div>;
HTML;

    $index++;
}

作為旁注,您是否考慮過改用CSS nth-child屬性?

您需要計算迭代次數,並使用取模函數得到5的一部分:

$sql = "SELECT * FROM images";
$query = mysql_query($sql);

$i = 0;
while($row = mysql_fetch_assoc($query)) {
    if($i % 5 == 0)
      echo '<div class="single first">';
    else if($i % 5 == 4) 
      echo '<div class="single last">';
    else
      echo '<div class="single">';
    echo '<img src="'.$row['image'].'" alt="'.$row['title'].' " />';
    echo '</div>';
    $i++;
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM