2010-03-09 88 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

相关问题