基于用户登录在阵列中执行添加的逻辑

时间:2015-03-07 07:36:45

标签: php arrays

我有这样的数组:

// 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。:上面的数组只是我想要了解的一个例子,以便构建我的应用程序。实际上,订单将包含任意数量的主持人及其相应的佣金金额和状态,并将从数据库中检索。

2 个答案:

答案 0 :(得分:0)

表主持人   id名称 表委员会  moderator_id commision_amt commision_status_id

表Commission_status 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)

答案 1 :(得分:0)

我认为你在寻找的东西是......

<?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>