12 aylık görünüm olarak tarihler ekran dizisi

1 Cevap php

i PHP / MySQL ile çalışmak

, 80 $: 100 $, 12/2001: 50 $ 1/2002: 30 $, 5/2002: 90 $, 6/2003 i 7/2001 {gibi değerleri ile iki cols (tarih, nakit) ile tablo var 9/2003: 20 i cols (Ocak, Şubat, Mart, ............ Aralık) sahip nakit akış tablosunu yapmak ve tarih dizide her yıl kürek istiyorum $} ve darbe gibi tablo hücreleri nakit değeri.

Darbe olarak bu diziyi {20 $: 100 $ 12/2001: 50 $ 1/2002: 30 $, 5/2002: 90 $, 6/2003:: 80 $, 9/2003 7/2001} nasıl görüntülenir ???

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

Tamam dizinin formatı gibi veritabanından satırları alınamadı ve bir tablo (tarih, nakit) olarak çizmek bu kod

   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>"; 
   } 

1 Cevap

$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>";
    }

Bu tabii size col genişlikleri doğru yapmak için bir tablo tanıtmak gerekir, size arzu biçiminde verileri vermelidir.

Edited: In light of data provided create your array via the DB and pass it on to the above code, probably something like this:

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

Tabii siz yukarıdaki 2 kod bloklarında artırabilir, ama bu size bir fikir vermelidir.