猿问

计算两个while之间的差异

我在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  

?>

返回此行的位置:

http://img3.mukewang.com/6290382100017a1208520217.jpg

同一个中的两个 while 返回 4 行,如下所示:

http://img1.mukewang.com/6290382c00018e7108530406.jpg

如果您注意到这 4 行,则您有两行具有相同的 User Nº。而你不能。我的意思是,来自第二个的线条在根据相同的用户编号绘制第一个的值和小时数时。

我怎样才能做到这一点?基本上这个想法是在注册错误的情况下创建一个信用票据系统。


HUWWW
浏览 124回答 1
1回答

慕盖茨4494581

你可以尝试这样的事情:<?php&nbsp;&nbsp;// You create an empty array$result = [];while($row1 = mysqli_fetch_array($result1))&nbsp;&nbsp;{&nbsp; &nbsp; // I assume $row1["codigo"] is your id. If not, replace by your id.&nbsp; &nbsp; // The idea is to fill the array with all the data you will display after&nbsp; &nbsp; $result[$row1["codigo"]] = array(&nbsp; &nbsp; &nbsp; &nbsp; "nome" => $row1["nome"],&nbsp; &nbsp; &nbsp; &nbsp; "qtd1_2hora" => $row1["QTD 1º e 2º Hora"],&nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; &nbsp; &nbsp; "total" => $row1["Valor Total"]&nbsp; &nbsp; );}// Now the second whilewhile($row3 = mysqli_fetch_array($result3))&nbsp;&nbsp;{&nbsp; &nbsp; // If you don't have a row with the same id : create it&nbsp; &nbsp; if (empty($result[$row3["codigo"]])) {&nbsp; &nbsp; &nbsp; &nbsp; $result[$row3["codigo"]] = array(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "nome" => $row3["nome"],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "qtd1_2hora" => $row3["QTD 1º e 2º Hora"],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "total" => $row3["Valor Total"]&nbsp; &nbsp; &nbsp; &nbsp; );&nbsp; &nbsp; }&nbsp;&nbsp; &nbsp; // Now if you already have a row with this id : update your data&nbsp; &nbsp; else {&nbsp; &nbsp; &nbsp; &nbsp; // Eg: if you want to add the total of first while with total of second while&nbsp; &nbsp; &nbsp; &nbsp; $result[$row3["codigo"]]["total"] += $row3["Valor Total"];&nbsp; &nbsp; &nbsp; &nbsp; /* You have to do what you want here, can't help you more ! */&nbsp; &nbsp;&nbsp; &nbsp; }}// Now you can display you data :foreach ($result as $id => $data) {?><tr>&nbsp;&nbsp;&nbsp; &nbsp; <td><?php echo $id; ?></td>&nbsp;&nbsp; &nbsp; <td><?php echo $data["nome"]; ?></td>&nbsp;&nbsp; &nbsp; <td><?php echo $data["qtd1_2hora"]; ?></td>&nbsp; &nbsp; ...&nbsp; &nbsp; <td><?php echo $data["total"]; ?></td>&nbsp;</tr>&nbsp;<?php}?>是你要找的吗?
随时随地看视频慕课网APP
我要回答