强制表显示有或没有数据的5行

时间:2014-12-29 10:22:29

标签: php html mysql html-table report

我必须使用PHP显示从MySQL数据库中获取的5行的表。从下面的代码中,如果我在数据库中有3行,它将只显示3行。但是,我需要显示5行,其中包含2个空行和3个读取的行。如果在数据库中找不到记录,我应该显示5个空行。我需要你的帮助。

注意:我正在使用PHP和MySQL生成报告。从上面的方法,我可以修复表高度,因此报告将生成没有任何重叠。

CODE:

<?php
$select= "select * from table where id=1";

$select2= mysql_query($select);
$select3= mysql_num_rows($select2);

$row_count = 1;

while($row = mysql_fetch_assoc($select2)){ 
?>
     <tr>

                <td ><?php echo $row_count;?>.</td>
                <td ><?php echo $rows['id']; ?></td>
                <td ><?php echo $rows['name']; ?></td>
                <td ><?php echo $rows['phone_number']; ?></td>

     </tr> 
<?php $row_count++;
}?>

4 个答案:

答案 0 :(得分:2)

由于您已经在计算$row_count变量,因此可以添加简单的while循环,如下所示:

<?
while($row_count < 5){ 
?>
     <tr>

                <td >&nbsp;</td>
                <td >&nbsp;</td>
                <td >&nbsp;</td>
                <td >&nbsp;</td>

     </tr> 
<?php $row_count++;
}?>

What is &nbsp;? Is it needed?

另请查看@ paxdiablo关于查询的limit 5选项的回答。

答案 1 :(得分:1)

这应该可以解决问题。

<?php
$select= "select * from table where id=1";

$select2= mysql_query($select);
$select3= mysql_num_rows($select2);

$row_count = 1;

while($row = mysql_fetch_assoc($select2)){ 
?>
     <tr>

                <td ><?php echo $row_count;?>.</td>
                <td ><?php echo $rows['id']; ?></td>
                <td ><?php echo $rows['name']; ?></td>
                <td ><?php echo $rows['phone_number']; ?></td>

     </tr> 
<?php $row_count++;
}
if ($row_count < 5){
    for ($i=1; $i <= (5-$row_count); $i++){
?>
<tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
<?php
    }
}
?> 

答案 2 :(得分:1)

您似乎有两个不同的问题(虽然相关)。

如果您只需要五行,即使查询返回二十,您也可以使用控制变量$row_count仅输出前五行,或者(最好)只添加limit 5您的查询要获得五行或更少的行。

第二个问题是如果返回少于五行该怎么办。在这种情况下,使用控制变量输出空行,例如在末尾添加以下内容:

<?php
    while ($row_count < 5) {
?>
        <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr> 
<?php
        $row_count++;
    }
?>

答案 3 :(得分:1)

while($row = mysql_fetch_assoc($select2)){ 
?>
 <tr>

            <td ><?php echo $row_count;?>.</td>
            <td ><?php echo $rows['id']; ?></td>
            <td ><?php echo $rows['name']; ?></td>
            <td ><?php echo $rows['phone_number']; ?></td>

</tr> <?php }
if($select3<5){
for($i=1;$i<5-$select3;$i++){?>
     <tr>
            <td ></td>
            <td ></td>
            <td ></td>
            <td ></td>
</tr> 
<?php  }
}