0

我有一个数据库表,该表有 6 行。我想要的是使用 3 列和 2 行表在 html 页面中显示 6 行。

我知道如何使用 php 数组和 while 循环。我的问题是如何限制数组将 3 个项目放在第一行,将另外 3 个项目放在下一行。

这是我尝试过但没有用的

<div id="maincontent">
  <!-- class one -->
      <?php 
        $getSection = getSection();
        $i=0;
        while($allSection = mysql_fetch_array($getSection)){
      ?>
      <div class="subconent">
<table width="937" border="0">
  <tr>
    <td>
        <div class="sub_image">
            <a href="section.php?id=<?php echo urlencode($allSection['id']); ?>"><img src="admin/uploads/fron_sect/<?php echo $allSection['image']; ?>" width="134" height="120" border="0" alt="HNA" class="PopBoxImageLink"  onmouseover="PopEx(this,-50,-25,205,186,20,null);" onclick="window.location='http://localhost/hants/section.php?id=<?php echo urlencode($allSection['id']); ?>'" /></a>
        </div>
            <div class="cont_txt">
              <h3><?php echo $allSection['name_full']; ?></h3>
                <p><?php echo substr($allSection['description'],0,140) . ""; ?></p>
                <br />
              <a href="section.php?id=<?php echo urlencode($allSection['id']); $i++; ?>"><img src="images/read_more.jpg" alt="Read More" width="89" height="25" border="0" /></a>
            </div>
    </td>
  </tr>
</table>
</div>
<?php 
if($i==4) { ?>
<table width="937" border="0">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td></tr>
<tr><div class="sub_image">
            <a href="section.php?id=<?php echo urlencode($allSection['id']); ?>"><img src="admin/uploads/fron_sect/<?php echo $allSection['image']; ?>" width="134" height="120" border="0" alt="HNA" class="PopBoxImageLink"  onmouseover="PopEx(this,-50,-25,205,186,20,null);" onclick="window.location='http://localhost/hants/section.php?id=<?php echo urlencode($allSection['id']); ?>'" /></a>
        </div>
            <div class="cont_txt">
              <h3><?php echo $allSection['name_full']; ?></h3>
                <p><?php echo substr($allSection['description'],0,140) . ""; ?></p>
                <br />
              <a href="section.php?id=<?php echo urlencode($allSection['id']); ?>"><img src="images/read_more.jpg" alt="Read More" width="89" height="25" border="0" /></a>
            </div><td>
<?php   }
} ?>
  </div>
4

5 回答 5

7

使用模运算符 (%):

http://www.devchunks.com/web-development/using-the-php-modulus-operator/

像这样的东西:

<table>

<?php

$i = 0;
while ( $row = mysql_fetch_array($result) ){
    if ($i % 3 == 0){
        echo '<tr>';
    }
    echo '<td>'.$row['column_name'].'</td>';
    if ($i % 3 == 2){
        echo '</tr>';
    }
    $i++; 
}

//here is a check in case you don't have multiple of 3 rows
if ($i % 3 != 0){
    echo '</tr>';
}

?>

</table>
于 2012-08-27T17:20:16.303 回答
1

在它的基础上,你需要这样的东西:

<table>
<tr>

<?

$count = 0;
foreach ($row) {
    echo "<td>" . $row["value"] ."</td>";
    $count++;

    if (($count % 3) == 0) && ($count > 0) {
        echo ("</tr><tr>");
    }
}

?>

</tr>
</table>

开始打印表格的标题,然后开始遍历数据集。跟踪您打印了多少,如果这是第三个,则打印 HTML 以完成这一行并开始下一行。(我用过%,所以它会在第三个条目上换行,而不仅仅是第一个)

于 2012-08-27T17:22:37.490 回答
0

好吧,您可以在您的 sql 查询中正确获取这些信息(只是一个适合http://en.wikibooks.org/wiki/MySQL/Pivot_table的示例)。

或者干脆将所有内容提取到 PHP 数组中。

老派:mysql_query() 和 while($row = mysql_fetch_array()) 新派:PDO ( http://de.php.net/manual/en/book.pdo.php )

于 2012-08-27T17:18:34.510 回答
0

惊人的!非常感谢。它对我有用,Zend。你可以尝试这样的事情。

   <table width="1024px" border="0" cellspacing="2" cellpadding="2">  
  <?php
      $i = 0;
      foreach ($this->rows as $row )
      {
          $img = IMAGE_PATH . '/' . 'gallery/' . $row->gly_thumbnail;
          if ($i % 3 == 0)
          {
              echo '<tr>';
          }
  ?>
  <td align="center">
    <img src="<?php echo $img; ?>" width="300" height="215"><br/>
    <?php echo $row->gly_title; ?>
  </td>
  <?php        
          if ($i % 3 == 2)
          {
              echo '</tr>';
          }
          $i++; 
      }

      //here is a check in case you don't have multiple of 3 rows
      if ($i % 3 != 0)
      {
          echo '</tr>';
      }

  ?>
</table>
于 2012-09-06T08:00:46.463 回答
0
                    <?php if ($i++%$_columnCount==0): ?>
                        <tr>
                    <?php endif ?>
                  
                   
                    <td> <img src="<?php echo site_url('uploads/shelter_images/'.$row->shelter_id."/".$img->imagefile) ?>" alt="" width="300" ></td>
                    
                     <?php if ($i%$_columnCount==0 || $i==$totalImg): ?>
                      </tr>
                   <?php endif; ?> 
            
            <?php  } ?>
于 2021-06-24T07:13:55.503 回答