为了账号安全,请及时绑定邮箱和手机立即绑定

计算两个while之间的差异

计算两个while之间的差异

PHP
HUWWW 2022-05-27 10:31:29
我在php中有两个时间:<?php      while($row1 = mysqli_fetch_array($result1))        {?> <tr>      <td><?php echo $row1["codigo"]; ?></td>     <td><?php echo $row1["nome"]; ?></td>     <td><?php echo $row1["QTD 1º e 2º Hora"]; ?></td>    <td><?php echo $row1["Valor 1º e 2º Hora"]; ?></td>     <td><?php echo $row1["QTD 3º Hora"]; ?></td>     <td><?php echo $row1["Valor 3º Hora"]; ?></td>     <td><?php echo $row1["QTD 4º ou mais Horas"]; ?></td>     <td><?php echo $row1["Valor 4º ou mais Horas"]; ?></td>    <td><?php echo $row1["Valor Total"]; ?></td> </tr> <?php  } ?>Where 返回这三行:然后我有第二个时间:<?php      while($row3 = mysqli_fetch_array($result3))        {?> <tr>      <td><?php echo $row3["codigo"]; ?></td>     <td><?php echo $row3["nome"]; ?></td>     <td><?php echo $row3["QTD 1º e 2º Hora"]; ?></td>    <td><?php echo $row3["Valor 1º e 2º Hora"]; ?></td>     <td><?php echo $row3["QTD 3º Hora"]; ?></td>     <td><?php echo $row3["Valor 3º Hora"]; ?></td>     <td><?php echo $row3["QTD 4º ou mais Horas"]; ?></td>     <td><?php echo $row3["Valor 4º ou mais Horas"]; ?></td>    <td><?php echo $row3["Valor Total"]; ?></td> </tr> <?php  } ?>返回此行的位置:同一个中的两个 while 返回 4 行,如下所示:如果您注意到这 4 行,则您有两行具有相同的 User Nº。而你不能。我的意思是,来自第二个的线条在根据相同的用户编号绘制第一个的值和小时数时。我怎样才能做到这一点?基本上这个想法是在注册错误的情况下创建一个信用票据系统。
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

你可以尝试这样的事情:


<?php  


// You create an empty array

$result = [];


while($row1 = mysqli_fetch_array($result1))  

{

    // I assume $row1["codigo"] is your id. If not, replace by your id.

    // The idea is to fill the array with all the data you will display after

    $result[$row1["codigo"]] = array(

        "nome" => $row1["nome"],

        "qtd1_2hora" => $row1["QTD 1º e 2º Hora"],

        ...

        "total" => $row1["Valor Total"]

    );

}


// Now the second while

while($row3 = mysqli_fetch_array($result3))  

{

    // If you don't have a row with the same id : create it

    if (empty($result[$row3["codigo"]])) {

        $result[$row3["codigo"]] = array(

            "nome" => $row3["nome"],

            "qtd1_2hora" => $row3["QTD 1º e 2º Hora"],

            ...

            "total" => $row3["Valor Total"]

        );

    } 

    // Now if you already have a row with this id : update your data

    else {

        // Eg: if you want to add the total of first while with total of second while

        $result[$row3["codigo"]]["total"] += $row3["Valor Total"];


        /* You have to do what you want here, can't help you more ! */   


    }

}


// Now you can display you data :

foreach ($result as $id => $data) {

?>

<tr>  

    <td><?php echo $id; ?></td> 

    <td><?php echo $data["nome"]; ?></td> 

    <td><?php echo $data["qtd1_2hora"]; ?></td>

    ...

    <td><?php echo $data["total"]; ?></td> 

</tr> 


<?php

}

?>

是你要找的吗?


查看完整回答
反对 回复 2022-05-27
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号