2013-01-09 24 views
0

如何將兩個類似的字段在PHP中?在PHP中通過類似的2個字段組?

我集團通過DATE(bill.date),bill.agent_id但它不是爲我工作

表結構1:http://i.stack.imgur.com/yvBF0.jpg(表名是bill_agents) 表結構2:http://i.stack.imgur.com/38tKh.jpg(表名是比爾)

當前結果

+---------+----+----+----+-----+----+ 
|   | 1 | 2 | 3 | 4 | 5 | 
+---------+----+----+----+-----+----+ 
| Agent 1 | 35 | 0 | 0 | 0 | 0 | 
| Agent 2 | 0 | 10 | 0 | 0 | 0 | 
| Agent 1 | 0 | 0 | 12 | 0 | 0 | 
| Agent 3 | 0 | 0 | 0 | 100 | 0 | 
| Agent 6 | 0 | 0 | 0 | 9 | 0 | 
| Agent 2 | 0 | 0 | 0 | 9 | 14 | 
+---------+----+----+----+-----+----+ 

But I want To get Like The Following 

+---------+----+----+----+-----+----+ 
|   | 1 | 2 | 3 | 4 | 5 | 
+---------+----+----+----+-----+----+ 
| Agent 1 | 35 | 0 | 12 | 0 | 0 | 
| Agent 2 | 0 | 10 | 0 | 0 | 14 | 
| Agent 3 | 0 | 0 | 0 | 100 | 0 | 
| Agent 6 | 0 | 0 | 0 | 9 | 0 | 
+---------+----+----+----+-----+----+ 

PHP代碼粘貼低於我現在使用。

<table width="100%" border="1" cellspacing="4" cellpadding="1"> 
    <tr> 
    <td>&nbsp;</td> 
    <?php 
for ($i=01; $i<=31; $i++) 
    {?> 
    <td><?php echo $i; ?></td> 
    <?php 

    } 
?> 
    <td>Total</td> 
    </tr> 
    <?php 

    $query4 = "SELECT bill.agent_id, bill.date, SUM(bill.amount + bill.cheque) AS total, bill_agents.id,bill_agents.name ". 
      "FROM bill, bill_agents ". 
      "WHERE bill.agent_id = bill_agents.id AND YEAR(date) = YEAR(CURDATE()) AND MONTH(date) = MONTH(CURDATE()) ". 
      "GROUP BY bill.agent_id , DATE(bill.date) ". 

       // "GROUP BY bill.agent_id , DATE(bill.date) ". 
       "ORDER BY bill.date ASC"; 

    $result4 = mysql_query($query4) or die('Error, query failed1'); 
    if (mysql_num_rows($result4)>0){ 
    mysql_data_seek($result4, 0); 

?> 
    <?php $total_1 = 0; while($row4 = mysql_fetch_array($result4, MYSQL_ASSOC)){?> 
    <?php $date = $row4['date']; 

    $var = $date; 
    $date = date("d-m-Y", strtotime($var)); 
    $date=substr($date, 0, -8); 

    echo $date; 

    ?> 
    <tr> 
    <td><?php echo $row4['name']; ?></td> 
    <?php 
for ($i=01; $i<=31; $i++) 
    {?> 
    <td><?php if ($date == $i) echo $row4['total']; ?></td> 
    <?php 

    } 
?> 
    <td></td> 
    </tr> 
    <?php } } ?> 
    <tr> 
    <td colspan="31"></td> 
    <td>Total</td> 
    <td></td> 
    </tr> 
</table> 
+0

什麼是你的表結構lookingat查詢似乎有多個表 –

+0

Slimier?我假設你的意思相似?編輯你的文章和問題 –

+0

表結構[鏈接](http://i.stack.imgur.com/38tKh.jpg) – Google

回答

0

我的理解是,您需要一個代理商在一年中的特定月份處理的總金額。 然後,修改查詢,如下所示,

<?php 
$query = "SELECT b.date,b.agent_id,(SUM(b.amount) + SUM(b.cheque)) AS total,ba.id,ba.name 
FROM bill_agent ba LEFT JOIN bill b ON b.agent_id = ba.id 
WHERE YEAR(b.date) = YEAR(CURDATE()) AND MONTH(b.date) = MONTH(CURDATE()) 
GROUP BY b.date"; 

?>