Как сохранить все данные, которые были рассчитаны на основе даты и без плана в таблице, которые создаются в коде php для отображения

#php #mysql

#php #mysql

Вопрос:

У кого-нибудь я могу попросить помощи для моей системы. У меня есть некоторые проблемы с сохранением данных расчета для каждой даты в таблице, которую я создаю. Проблема в том, что когда данные первой даты были рассчитаны, они сохраняются в первом столбце, но когда данные второй даты вычисляются, они суммируют все мои вычисления только в один столбец. Например: дата начала 04-09-2020 и конец 05-09-2020, это будет так :

Этот код для этой части :

  if(isset($_POST["from_date"], $_POST["to_date"])) {  
   
   $day =date("d", strtotime($_POST["from_date"]));
   $end =date("d", strtotime($_POST["to_date"]));
 

      ?><table class="table table-bordered">  
         <tr> 
            <th width="10%">Date testing 2</th> <?php
            for($i=$day; $i<=$end; $i  ){ 

               ?><th width="10%"><?php echo $i?></th><?php
            }
            ?>
            <th width="10%">Total</th>
            <th width="10%">Balance To Go</th>
         </tr> <?php

   if(mysqli_num_rows($resultR) > 0){

      if(isset($_POST["FighterID"]) and !empty($_POST["FighterID"])){
        /..../
      }else{
         
         // second table
         while($rowF = $resultX -> fetch_assoc()){// registerfighter
            
            $totalPlus = 0;
            //table start
            ?> <tr> 
                  <td><?php echo 'ID = '.$rowF["UserID"] ?></td>  
            <?php
 
            $resultR -> data_seek(0);
            while($rowR = $resultR -> fetch_assoc()){// by record

               $resultY-> data_seek(0);
               while($rowY = $resultY -> fetch_assoc()){// by addplan 

                  if( ($rowF["UserID"]===$rowR["UserIDD"])  and ( ($rowR["No_Plan"]) !== '1' and ($rowY["No_Plan"] === $rowR['No_Plan']) ) ){
                     
                     $total =  ($rowR["UserInputNEW"]   $rowR["UserInputNMP"]);
                     $totalPlus = $totalPlus   $total;       
                     /*?><td> <?php echo '';?></td> <?php*/
                  }
               }
            }
         
            ?> 
                  <td><?php echo 'Totaling  A8 / RP8 = '.$totalPlus; ?></td>
                  <td><?php echo 'Total  A8 / RP8 = '.$totalPlus; ?></td>
                  <td><?php echo 'Balance  A8 / RP8 = '.( 40 - $totalPlus); ?></td> 
               </tr> 
            <?php
            //table end
         }
      }
  

проблемывведите описание изображения здесь
предположим,введите описание изображения здесь

Комментарии:

1. Я бы предположил, что 80% участников этого форума являются самообучающимися!

Ответ №1:

Вы должны распечатать отдельные вычисления внутри цикла while и общие вычисления вне цикла while. Попробуйте это

 if(isset($_POST["from_date"], $_POST["to_date"])) {  
   
   $day =date("d", strtotime($_POST["from_date"]));
   $end =date("d", strtotime($_POST["to_date"]));
 

      ?><table class="table table-bordered">  
         <tr> 
            <th width="10%">Date testing 2</th> <?php
            for($i=$day; $i<=$end; $i  ){ 

               ?><th width="10%"><?php echo $i?></th><?php
            }
            ?>
            <th width="10%">Total</th>
            <th width="10%">Balance To Go</th>
         </tr> <?php

   if(mysqli_num_rows($resultR) > 0){

      if(isset($_POST["FighterID"]) and !empty($_POST["FighterID"])){
        /..../
      }else{
         
         // second table
         while($rowF = $resultX -> fetch_assoc()){// registerfighter
            
            $totalPlus = 0;
            //table start
            ?> <tr> 
                  <td><?php echo 'ID = '.$rowF["UserID"] ?></td>  
            <?php
 
            $resultR -> data_seek(0);
            while($rowR = $resultR -> fetch_assoc()){// by record

               $resultY-> data_seek(0);
               while($rowY = $resultY -> fetch_assoc()){// by addplan 

                  if( ($rowF["UserID"]===$rowR["UserIDD"])  and ( ($rowR["No_Plan"]) !== '1' and ($rowY["No_Plan"] === $rowR['No_Plan']) ) ){
                     
                     $total =  ($rowR["UserInputNEW"]   $rowR["UserInputNMP"]);
                     $totalPlus = $totalPlus   $total;       
                     echo "<td>Totaling  A8 / RP8 = ".$totalPlus."</td>";
                  }
               }
            }
         
            ?> 
                <td><?php echo 'Balance  A8 / RP8 = '.( 40 - $totalPlus); ?></td> 
               </tr> 
            <?php
            //table end
         }
      }