在PHP和MySql中多次打印记录

在PHP和MySql中多次打印记录,php,javascript,html,mysql,Php,Javascript,Html,Mysql,我正在尝试创建一个网页,对一个表进行简单的查询,并将该表显示到一个页面上,但有一个复杂的扭曲让我感到困惑。以下是表格中的列名和一条示例记录,以逗号分隔: R_ID , B_ID , R_No , RoomName , showers , eyewashPlumbed , EyewashBottles 1 , 609 , 609 , Hazardous Waste Shed , 1 , 1 , 1 我需要打印此表的每一行,但如果淋浴、洗眼器垂直或洗眼瓶大于0,

我正在尝试创建一个网页,对一个表进行简单的查询,并将该表显示到一个页面上,但有一个复杂的扭曲让我感到困惑。以下是表格中的列名和一条示例记录,以逗号分隔:

R_ID ,  B_ID ,  R_No ,  RoomName , showers , eyewashPlumbed , EyewashBottles  
1 , 609 ,   609 ,   Hazardous Waste Shed ,  1   ,   1    ,  1
我需要打印此表的每一行,但如果淋浴、洗眼器垂直或洗眼瓶大于0,还需要打印多行。例如,我将打印这一行三次。如果淋浴是0,我只会打印两次(一次用于洗眼器,一次用于洗眼瓶,0用于淋浴)。如果淋浴是2,我会打印4次,以此类推

我用来打印的代码如下:

<?php while ($row = mysql_fetch_array($result, MYSQL_ASSOC)): ?> 
    <tr>
    <td><?php print $row["B_ID"];?></td> 
    <td><?php print $row["R_No"];?></td> 
    <td><?php print $row["RoomName"];?></td>
    <td><?php print $row["Showers"];?></td>
    <td><?php print $row["eyewashPlumbed"];?></td>
    <td><?php print $row["EyewashBottles"];?></td>  
    </tr>
<?php endwhile; ?>


问题是我不知道如何中断while循环以便多次打印同一行。当它从mysql_fetch_数组提取时,它会进入下一行。

您确实应该切换到PDO/mysqli,但是对于您当前的代码,它会是这样的(对于您的示例中的
淋浴
):



您可能希望将
$row[“shower\u no”]
更改为类似
$i+1的内容,因为该列不会出现在您的数据库中。

如果您有多种规则

我会这样处理这个问题:

<?php 

function printRow($row=array(), $times=1) {
    for($i=0; $i<$times; $i++) {
        echo "
        <tr>
        <td>{$row["Date"]}</td> 
        <td>{$row["Inspector1"]}</td> 
        <td>{$row["Inspector2"]}</td>
        <td>{$row["Building_Name"]}</td>
        <td>{$row["Room"]}</td>
        <td>{$row["shower_no"]}</td>  
        </tr>
        ";
    }
}

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    switch(true) {
        case ($row['eyewashPlumbed']>0 or $row['EyewashBottles']>0):
            printRow($row, 3); // print 3 times
            break;
        case ($row['showers']==0): // print 2 times
            printRow($row, 2);
            break;
        default: // default print 1 time only
            printRow($row, 1);
    }
}
?>


您根本没有提到这个问题。我们不是一家出租编码服务公司。您列出了需求,但没有提到您的问题所在。如果你不能自己写这封信,那么很抱歉。。这不是我们来这里的目的。我试着把这个问题贴出来,结果做得很糟糕。让我编辑它,然后再试一次。这是我的第一篇帖子,我仍在尝试了解网站的布局。我接受了你的答案,因为它帮助我得出了我需要的结论,尽管我没有使用你发布的确切代码。这主要是因为我的问题措辞怪异。
<?php 

function printRow($row=array(), $times=1) {
    for($i=0; $i<$times; $i++) {
        echo "
        <tr>
        <td>{$row["Date"]}</td> 
        <td>{$row["Inspector1"]}</td> 
        <td>{$row["Inspector2"]}</td>
        <td>{$row["Building_Name"]}</td>
        <td>{$row["Room"]}</td>
        <td>{$row["shower_no"]}</td>  
        </tr>
        ";
    }
}

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    switch(true) {
        case ($row['eyewashPlumbed']>0 or $row['EyewashBottles']>0):
            printRow($row, 3); // print 3 times
            break;
        case ($row['showers']==0): // print 2 times
            printRow($row, 2);
            break;
        default: // default print 1 time only
            printRow($row, 1);
    }
}
?>