-1

私はphpギャラリーに取り組んでいます。PHPを使用してmysql dbから画像を表示していますが、画像が1つずつ表示されています。これは、1 行目の最初の画像と 2 行目の 2 番目の画像を意味します。しかし、私は自分の画像を1行あたり3または4として表示したいと考えています。どのようなコーディング変更を行うことができますか。以下に示すように私のphpコード。

<?php 
    include_once("config.php");
    $result=mysql_query("SELECT * FROM images");
    while($res=mysql_fetch_array($result)){ ?>
        <table width='200'>
            <tr>
                <td><?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?><?php echo $res['imagename']?><?php echo"</a>"?></td>
            </tr>
            <tr>
                <td>
                    <div id="news-image">
                        <?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?>
                        <?php echo'<img src='.$res['image'].' width="250" height="100">'?><?php echo"</a>"?>
                    </div>
                </td>
            </tr>
        </table>
 <?php } ?>   
4

7 に答える 7

1

array_chunk()は、配列を X 項目のコレクションに分割して、カウンターを保持することなくループできるようにする関数です (パディングが必要な場合は、リストの最後の項目で array_pad() を使用できます)。

if($array = array_chunk(mysql_fetch_assoc($result),4))
{
  foreach($array as $row)
  {
    echo '<div class="row">';
    foreach($row as $col)
    {
      echo '<div class="item">' . $col['image'] . '</div>';
    }
    echo '</div>';
  }
}
于 2012-05-10T04:47:54.607 に答える
0

この例に従ってください

<table>
<tr>
<?php
$i = 1;
do{
    echo "<td>" . $i . "</td>";
    //Num of Columns
    if( $i%3 == 0 ){
        echo "</tr><tr>";
    }

    $i++;
}while($i<=10);
?>
</tr>
<table>

あなたが望むような結果を返します..

ここに画像の説明を入力

于 2012-05-10T04:49:25.107 に答える
0
<?php 
include_once("config.php");
$result=mysql_query("SELECT * FROM images");
?>
<table>
<tr>
    <?php 
         $cnt = 0;
         while($res=mysql_fetch_array($result))
         { 
        if($cnt == 3){
        echo "</tr><tr>";
        }
          ?>
        <td>
    <table width='200'>
        <tr>
            <td><?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?><?php echo $res['imagename']?><?php echo"</a>"?></td>
        </tr>
        <tr>
            <td>
                <div id="news-image">
                    <?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?>
                    <?php echo'<img src='.$res['image'].' width="250" height="100">'?><?php echo"</a>"?>
                </div>
            </td>
        </tr>
    </table>
</td>
 <?php
$cnt++;
  }
 ?>
</tr>
</table>
于 2012-05-10T04:50:18.130 に答える
0

画像ごとにテーブルを出力しています。少なくとも、コードは次のようになります。

<table>
<tr>
<?php while($res etc...) { ?>
<td>
   <img src="<?php echo ......?>" />
</td>
<?php } ?>
</tr>
</table>

これで、1 つのテーブルの 1 行にすべての画像が表示されます。複数の行を持つようにすることは、OP の演習として残されています。

于 2012-05-10T04:46:14.280 に答える
0

次のコードを使用します。

<?php 
include_once("config.php");
$result=mysql_query("SELECT * FROM images");
?>
<table>
<tr>
<?
$varcount=0;
while($res=mysql_fetch_array($result))
{
 $varcount++;
 if($varcount == 4) // Count of images per row. 3 or 4 
 {
      $varcount=0;
 ?>
  </tr><tr>
 <?
 } 
?>

 <td> 
 <table width='200'>
 <tr>
 <td><?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?><?php echo $res['imagename']?><?php echo"</a>"?></td>
 </tr>
 <tr>
 <td>
 <div id="news-image">
 <?php echo"<a href='indimage.php?imageid=$res[imageid]'>"?>
 <?php echo'<img src='.$res['image'].' width="250" height="100">'?><?php echo"</a>"?>
 </div>
 </td>
 </tr>
 </table>
 </td> 
 <?php
 }
?> 
</tr>
</table>
于 2012-05-10T04:46:18.150 に答える
0

代わりに、画像を div のリストまたは単に div として出力し、CSS を使用して画像を 2 列で表示することができます。レイアウトはそれほどハードワイヤードであってはなりません。

<style>
    div.gallery {
        width: 650px;
    }
    div.gallery ul li {
        list-style: none;
        float: left;
    }
    div.image {
        height: 500px;
        width: 300px;
    }
</style>
<div class="gallery">
    <ul>
        <li>
            <div class="image">
                <span class="image_title">Some title</span><br/>
                <img src="foo.png"/>
            </div>
        </li>
        <li>
            <div class="image">
                <span class="image_title">Another title</span><br/>
                <img src="bar.png"/>
            </div>
        </li>
        <li>
            <div class="image">
                <span class="image_title">Another title</span><br/>
                <img src="foo.png"/>
            </div>
        </li>
        <li>
            <div class="image">
                <span class="image_title">Another title</span><br/>
                <img src="bar.png"/>
            </div>
        </li>
        <li>
            <div class="image">
                <span class="image_title">Another title</span><br/>
                <img src="foo.png"/>
            </div>
        </li>
    </ul>
</div>

結果:

ここに画像の説明を入力

コードは次のようになります。

<div class="gallery">
    <ul>

<?php 
include_once("config.php");
$result = mysql_query("SELECT * FROM images");
while($res = mysql_fetch_array($result)) {
?>
        <li>
            <div class="image">
                <a class="image_title" href="indimage.php?imageid=<?php echo $res['imageid']?>"><?php echo $res['imagename']?></a><br/>
                <a href="indimage.php?imageid=<?php echo $res['imageid']?>"><img src="<?php echo $res['image']?>" /></a>
            </div>
        </li>
<?php
}
?>
    </ul>
</div>
于 2012-05-10T04:59:26.827 に答える