基于用户登录在数组中执行加法的逻辑


Logic to perform addition in array based on user loggin in

我有这样的数组:

// array of moderator code
Array
(
    [0] => M1
    [1] => M2
    [2] => M3
    [3] => M1
)
// array of commission amount and status based on the above array
Array
(
    [10] => Paid
    [20] => Due
    [30] => Cancelled
    [40] => Paid
)

如果任何一位主持人登录,他应该只看到自己的委员会详细信息,而不是其他人的详细信息。例如,如果M1登录,他应该在他的我的账户中看到这样的信息:

OrderCode    PaidAmount    CancelledAmount    DueAmount    Action
    1      50.00 (40 + 10)     0.00             0.00        View

其他主持人也是如此。

我该如何做到这一点?

p.S.:上面的数组只是我为了构建应用程序而试图理解的一个例子。事实上,订单将包含任意x个版主及其相应的佣金金额和状态,并将从数据库中检索。

表调节器id名称Table佣金主持人id委员会_amt委员会状态id

表委托_状态status_id名称

当您检索主持人的佣金时

 select * from Moderators m join Commision c on m.id = c.moderator_id join Commission_status s on c.commistion_status_id = s.status_id where moderator_id = 1(moderator id)

这将给出与主持人id相关的所有佣金金额如果有任何困惑,请自由评论

第二部分一个staus的所有金额的总和具有特定状态的所有金额的总和,如已付款和登录的主持人id

select sum(commision_amt ) from Moderators m join Commision c on m.id = c.moderator_id join Commission_status s on c.commistion_status_id = s.status_id where moderator_id = 1(moderator id) and status_id =(status_id)

我想你想要的是。。

<?php
// Create an Array to hold our Total values.
$commissionTotals = array();
// loop through each result
// YOU, COULD USE A SWITCH STATEMENT
foreach($commissionArray as $value=>$status)
{
   switch($status)
   {
       case "paid" :
          $commissionTotals['paid'] = $commissionTotals['paid']+$value; 
       break;
       case "Due" :
          $commissionTotals['due'] = $commissionTotals['due']+$value;
       break;
       case "Cancelled" : 
          $commissionTotals['cancelled'] = $commissionTotals['cancelled']+$value;
       break;
   }
}

// OR.. JUST DO A DIRECT LOOKUP
foreach($commissionArray as $value=>$status)
{
   if($status=="paid")
   {
      $commissionTotals['paid'] = $commissionTotals['paid']+$value;
   }
   if($status=="Due")
   {
      $commissionTotals['due'] = $commissionTotals['due']+$value;
   }
   if($status=="Cancelled")
   {
      $commissionTotals['cancelled'] = $commissionTotals['cancelled']+$value;
   }
}
?>
<table>
  <thead>
     <th>
        <td>OrderCode</td>
        <td>PaidAmount</td>
        <td>CancelledAmount</td>
        <td>DueAmount</td>
        <td>Action</td>
     </th>
  </thead>
  <tbody>
    <tr>
      <td><?php echo $orderCode;?></td>
      <td><?php if(isset($commissionTotals['paid'])) { echo $commissionTotals['paid'];}else{echo 0;}?></td>
      <td><?php if(isset($commissionTotals['due'])) { echo $commissionTotals['due'];}else{echo 0;}?></td>
      <td><?php if(isset($commissionTotals['cancelled'])) { echo $commissionTotals['cancelled'];}else{echo 0;}?></td>
    </tr>
   </tbody>
</table>