在php循环中显示两列html表

时间:2012-06-05 17:54:22

标签: php mysql html loops

我正在创建一个可以以表格形式显示新闻的新闻稿模板,但我希望新闻每行显示两列。 请检查此网址,看看我在说什么http://www.ipaidabribenaija.com/newsletter.php 感谢。

    <?php
    $conn = mysql_connect("localhost", "rppt", "peep") or die(mysql_error());

    mysql_select_db('news', $conn) or die(mysql_error());

    $query = mysql_query ("Select i.nid, LEFT(i.fulltext, 350), UPPER(i.title), 
LOWER(c.name) from nl i JOIN jos_k2_categories c ON c.id=i.catid ORDER BY i.id LIMIT 0, 16") or die ('Error');

    $href = "http://www.ipaidabribenaija.com/index.php";

?>



<table width="500px" align="center">
    <tbody>
        <tr>
            <td width="400px" height="344px" valign="top">
<table cellspacing="5">
        <tbody>


         <?php
            while(list($id, $fulltext, $title, $name)=mysql_fetch_array($query))
            {
                $i = 0;
         ?>
         <?php
            $replacename = eregi_replace(" ",  "-", $name);
         ?>
        <tr>
            <td height="34">&nbsp;</td>
        </tr>
        <?php
            if($i%2 == 0)
            {
        ?>
        <tr>
            <tr>
                <td height="34">
<font color="#FF0000" size="+2"><strong><?php echo $title; ?></strong></font>&nbsp;</td>
            </tr>
            <tr>
                <td height="34"><p><?php echo $fulltext; ?>...</p>

                    <p><a href="<?php echo $href ."/". $replacename ."/item/". $id; ?>">read more...</a></p>
                </td>
            </tr>
            <?php
                }
                else{
            ?>
                <tr>
                    <td height="34"><font color="#FF0000" size="+2"><strong><?php echo $title; ?></strong></font>&nbsp;</td>
                </tr>
                <tr>
                    <td height="34"><p><?php echo $fulltext; ?>...</p>
                        <p><a href="<?php echo $href ."/". $replacename ."/item/". $id; ?>">read more...</a></p></td>
                </tr>
                <?php
                    }
                        }
                ?>
        </tr>
        </tbody>
     </table>
    </td>
    </tr>
    </tbody>
</table>

3 个答案:

答案 0 :(得分:2)

这将帮助你完成大部分工作:

echo '<tr>';
$i = 0;
while(...) {
    if($i > 0 and $i % 2 == 0) {
        echo '</tr><tr>';
    }
    echo '<td>My data</td>';
    $i++;
}
echo '</tr>;

答案 1 :(得分:0)

使用rowspan和colspan html属性

 <tr>
  <td>A</td>
  <td colspan="2">&nbsp;</td>
 </tr>

答案 2 :(得分:0)

执行查询后,您可以写下:

<table>
<?php
$rows = 1;
$while($news = @mysql_fetch_array($query)){
  if($rows % 2 != 0){
    echo "<tr><td>" . $news['details'] . "</td>";
  }
  else {
   echo "<td>" . $news['details'] . "</td></tr>";
  }
  $row++;
}

if($rows % 2 != 0){echo "<td>&nbsp;</td></tr>"; }
?>
</table>

使用此代码创建一个表,用1初始化变量,仅用于检查行数。

最后,如果您有3条新闻,则脚本将完成该行和一个空单元格。