amCharts: Is it possible to 'add up total' rows with matching date together?

Discussion in 'PHP' started by wnetwork, Mar 5, 2011.

  1. #1
    I want to use the chart (http://www.amcharts.com) to display 'Last 7 Days' Total Impressions & Clicks in the advertising php script Admin Area.

    My problem is I have rows like this:
    
    id 	ad_id 	date 	 	exp    clicks
    1 	2 	2011-02-07 	1 	1
    2 	5 	2011-02-07 	12 	5
    3 	2 	2011-02-20 	3 	0
    4 	11 	2011-02-21 	1 	0
    5 	2 	2011-03-02 	89 	0
    6 	18 	2011-03-02 	43 	0
    7 	19 	2011-03-02 	60 	0
    8 	19 	2011-03-02 	1 	0
    Code (markup):
    So somehow I want to get data like this:
    
    2011-02-07 	13 	6
    2011-02-20 	3 	0
    2011-02-21 	1 	0
    2011-03-02 	193 	0
    
    Code (markup):
    [​IMG]

    <?php 
    include ('../../../includes/connect.php');
    
    
    $query2 = "SELECT * FROM data";
    $result = mysql_query($query2) or die('Error, query failed : ' . mysql_error()); 
    while($row = mysql_fetch_assoc($result)) {
       $data[] = $row;
    }
    $data[0]['date'];
    $data[1]['date'];
    $data[2]['date'];
    $data[3]['date'];
    $data[4]['date'];
    $data[5]['date'];
    $data[6]['date'];
    
    $data[0]['exp'];
    $data[1]['exp'];
    $data[2]['exp'];
    $data[3]['exp'];
    $data[4]['exp'];
    $data[5]['exp'];
    $data[6]['exp'];
    
    $data[0]['clicks'];
    $data[1]['clicks'];
    $data[2]['clicks'];
    $data[3]['clicks'];
    $data[4]['clicks'];
    $data[5]['clicks'];
    $data[6]['clicks'];
    
    
    echo '<'.'?xml version="1.0" encoding="UTF-8"?'.'>
    ';  
    ?>
    <chart>
    <? 
    echo '<series>
    ';
    echo '<value xid="0">'.$data[0]['date'].'</value>
    '; 
    echo '<value xid="1">'.$data[1]['date'].'</value>
    '; 
    echo '<value xid="2">'.$data[2]['date'].'</value>
    '; 
    echo '<value xid="3">'.$data[3]['date'].'</value>
    '; 
    echo '<value xid="4">'.$data[4]['date'].'</value>
    '; 
    echo '<value xid="5">'.$data[5]['date'].'</value>
    '; 
    echo '<value xid="6">'.$data[6]['date'].'</value>
    '; 
    echo '</series>
    ';
    ?>
    	<graphs>
    <?
    echo '<graph title="Clicks" fill_alpha="60" line_width="2" bullet="round" color="#FF9E01">
    ';
    echo '<value xid="0">'.$data[0]["clicks"].'</value>
    '; 
    echo '<value xid="1">'.$data[1]["clicks"].'</value>
    '; 
    echo '<value xid="2">'.$data[2]["clicks"].'</value>
    '; 
    echo '<value xid="3">'.$data[3]["clicks"].'</value>
    '; 
    echo '<value xid="4">'.$data[4]["clicks"].'</value>
    '; 
    echo '<value xid="5">'.$data[5]["clicks"].'</value>
    '; 
    echo '<value xid="6">'.$data[6]["clicks"].'</value>
    '; 
    echo '</graph>
    ';
    
    echo '<graph title="Impressions" fill_alpha="60" line_width="2" bullet="round" color="#0D8ECF">
    ';
    echo '<value xid="0">'.$data[0]["exp"].'</value>
    '; 
    echo '<value xid="1">'.$data[1]["exp"].'</value>
    '; 
    echo '<value xid="2">'.$data[2]["exp"].'</value>
    '; 
    echo '<value xid="3">'.$data[3]["exp"].'</value>
    '; 
    echo '<value xid="4">'.$data[4]["exp"].'</value>
    '; 
    echo '<value xid="5">'.$data[5]["exp"].'</value>
    '; 
    echo '<value xid="6">'.$data[6]["exp"].'</value>
    '; 
    echo '</graph>
    ';
    
    ?>
    	</graphs>
    </chart>
    PHP:
     
    wnetwork, Mar 5, 2011 IP
  2. plog

    plog Peon

    Messages:
    298
    Likes Received:
    11
    Best Answers:
    1
    Trophy Points:
    0
    #2
    You need to aggregate your query with the Group By clause.

    $query2 = "SELECT date, SUM(exp) AS totexp, SUM(clicks) AS totclicks FROM data GROUP BY date;";
     
    plog, Mar 5, 2011 IP
    wnetwork likes this.
  3. wnetwork

    wnetwork Greenhorn

    Messages:
    55
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    16
    #3
    Oh its that simple. Awesome.
     
    wnetwork, Mar 5, 2011 IP