0

PDOデータベースから結果を取得するために使用し、foreachループを使用してデータを表示しています。

私のコードは

$result1=$objPage->getGallery($id);
foreach($result1 as $row)
{

    echo "pic1=" . $row['pic']; 
    echo "pic2=" . $row['pic']; 
    echo "pic3=" . $row['pic']; 
    echo "<br>";    
}

実際には、3 つの写真の名前を 1 行に表示し、次に 3 つの名前を表示したいと考えています。

しかし、今では1つの名前を3回印刷しています。

4

4 に答える 4

2

次のようにします。

$result1=$objPage->getGallery($id);
$count = 0;
foreach($result1 as $row)
{
    echo "pic" . $count + 1 . "=" . $row['pic']; 
    if( $count % 3 == 2 )
    {
        echo "<br>";    
    }
    $count++;
}

情報

  1. モジュロ %
于 2013-02-02T13:38:36.450 に答える
2

まず、データを準備します

$data = $objPage->getGallery($id);
$data = array_chunk($data,3);

それを出力する

<table>
<? foreach($data as $chunk): ?>
  <tr>
<? foreach($chunk as $row): ?>
    <td><img src="<?=$row['pic']?>"></td>
<? endforeach ?>
  </tr>
<? endforeach ?>
</table>
于 2013-02-02T14:05:49.363 に答える
1

次のように、外部フラグを使用できます。

$flag = 0;
$result1=$objPage->getGallery($id);
foreach($result1 as $row) {
    echo "pic" . ($flag + 1) . "=" . $row['pic'];
    if( $flag % 3 == 0 )
        echo "<br>";
    $flag++;   
}
于 2013-02-02T13:40:14.280 に答える
1

他の人が提案したようにモジュロを使用することもできますが、このよりコンパクトな方法はどうですか?

$result1 = $objPage->getGallery($id);
$separators = array('', '', '<br/>');
foreach ($result1 as $index => $row) {
    echo 'pic' . ($index % 3) . '=' . $row['pic'] . $separators[$index % 3];
}
于 2013-02-02T13:41:23.970 に答える