2010-03-09 56 views
0

我用PHP工作的顯示陣列/ MySQL的日期12月視圖

我有兩個COLS(日期,現金)與像{7/2001的值表:$ 100,12/2001:$ 50, 1/2002:30 $,5/2002:90 $,6/2003:80 $,9/2003:20 $}我想製作有cols的現金流量表(1月,2月,3月,......) ........ Dec),並且在日期列表中每年都排一次,表格單元格中的現金價值也像打擊一樣。

如何顯示此陣列{7/2001:100 $,12/2001:50 $,1/2002:30 $,5/2002:90 $,6/2003:80 $,9/2003:20 $}如同打擊

  |Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | 
--------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
2001 | 0 | 0 | 0 | 0 | 0 | 0 | 100$ | 0 | 0 | 0 | 0 | 50$ | 
--------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
2002 | 30$ | 0 | 0 | 0 | 90$ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 
--------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
2003 | 0 | 0 | 0 | 0 | 0 | 80$ | 0 | 0 | 20$ | 0 | 0 | 0 | 

確定這一點,從數據庫retrive行,並在表中提取它的代碼(日期,現金)之類的陣列

mysql_connect("localhost","",""); 
    mysql_select_db(""); 
    $var3=$_REQUEST['order_num']; 
    $cashtotal=0; 
    $summat = mysql_query("SELECT * FROM cash_flow WHERE order_num='$var3'"); 
    while ($row = mysql_fetch_assoc($summat)) { 
     print "<tr>"; 
     print "<td>$row[cash_date]</td>"; 
     print "<td>$row[cash]</td>"; 
     print "</tr>"; 
    } 
+0

確定這是從數據庫中檢索行並將其繪製在表(日期,現金)中的代碼,如數組格式 mysql_connect(「localhost」,「」,「」); mysql_select_db(「」); $ VAR3 = $ _ REQUEST [ 'order_num']; $ cashtotal = 0; $ summat =請求mysql_query( 「SELECT * FROM'cash_flow' WHERE'order_num' = '$ VAR3'」); 而($行= mysql_fetch_assoc($ summat)){ 打印 「」; 打印 「​​$行[cash_date]」; 打印 「​​$行[現金]」; \t print「」; } – ahmed 2010-03-09 22:44:53

回答

0
$array = array ("7/2001:100$", "12/2001:50$" , "1/2002:30$" , "5/2002:90$" , "6/2003:80$","9/2003:20$"); 

    $prefill = array_fill(1,12,0); 
    $years_array = array(); 

    foreach($array as $value){ 
     list($date , $amount) = explode(":" , $value); 
     list($month , $year) = explode("/" , $date); 

     if(!$years_array[$year]) $months_data = $prefill; 
     else $months_data = $years_array[$year]; 

     $months_data[$month] = $amount; 
     $years_array[$year] = $months_data; 
    } 

    echo "| Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | <br>"; 
    ksort($years_array); 
    foreach($years_array as $year => $year_row){ 
     echo $year." | "; 
     echo implode(" | " , $year_row); 
     echo "<br>"; 
    } 

這應該給你的數據的格式你需要的格式,當然你需要引入一個表格來使列寬正確。

編輯: 在提供通過DB創建數組並把它傳遞給上面的代碼,大概是這樣的數據來看:

$array = array(); 
    while ($row = mysql_fetch_assoc($summat)) { 
     $array[] = $row[cash_date].":".$row[cash]; 
    } 

Ofcourse,你可以改善上述2個的代碼塊,但是這應該給你這個想法。

+0

它很多的作品完美 感謝。 – ahmed 2010-03-10 09:57:56

相關問題