0

次のようなコードがあるとします

<?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つの画像のすべてのセットに追加firstlastてdivクラスに入れたいです。<div class="single">

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

ループを介してそれを行う方法、助けてください、

ありがとう :)

4

4 に答える 4

5

モジュロの使用:

<?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++;
} 
?>
于 2012-09-26T14:39:09.337 に答える
2
<?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>';
} 
?>
于 2012-09-26T14:38:03.297 に答える
1

これはどう:

$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++;
}

補足として、代わりに CSSnth-childプロパティを使用することを検討しましたか?

于 2012-09-26T14:39:04.580 に答える
1

繰り返しを数え、モジュロ関数を使用して 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++;
} 
于 2012-09-26T14:39:04.937 に答える