Help me to solve this issue ,
$sql=mysql_query("select t1.LOGIN,t1.BALANCE,t2.PROFIT from table2 t2 LEFT JOIN table1 t1 on t2.CLOSE_TIME = '1985-11-01 00:00:00' where (t2.CMD=4 or t2.CMD=6 ) AND t2.LOGIN=t1.LOGIN ") or die(mysql_query());
$table = array();
$table['cols'] = array(
array('label' => 'No Acc', 'type' => 'string'),
array('label' => 'Profit', 'type' => 'number'),
array('label' => 'Loss', 'type' => 'number')
);
$p=0;
$l=0;
$profit=0;
$loss=0;
$rows = array();
while($r=mysql_fetch_array($sql))
{
if($r[PROFIT]>0)
{
$p=$p+1;
$profit=$profit+$r[PROFIT];
}
else if($r[PROFIT]<=0)
{
$l=$l+1;
$loss=$loss+$r[PROFIT];
}
}
$noacc=$p+$l;
$temp = array();
$temp[] = array('v' => (int) $noacc);
$temp[] = array('v' => (int) $p);
$temp[] = array('v' => (int) $l);
$table['rows'] = $rows;
$jsonTable = json_encode($table);
echo $jsonTable;
I get the following type of json code
{"cols":[{"label":"No Acc","type":"string"},{"label":"Profit","type":"number"},{"label":"Loss","type":"number"}],"rows":[{"c":[{"v":1199},{"v":261},{"v":938}]}]}
i use the following google chart code
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart()
{
var jsonData = $.ajax({
url: "cjson.php",
dataType:"json",
async: false
}).responseText;
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(jsonData);
var options = {'title':'Ticket Sales',
'width':500,
'height':400};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
<?
// PrintHeader($buf,$username,$userid,$session);
echo("<div id='chart_div'></div>");
?>
</html>
Finally When I load the page in my browser just shows the value 1199 value only in the chart ,Any example would help! Thank you.
Your problem is that the PieCharts expect data in two columns: pie slice label and pie slice value. You need to alter your PHP to return the appropriate structure:
$sql = mysql_query("select t1.LOGIN,t1.BALANCE,t2.PROFIT from table2 t2 LEFT JOIN table1 t1 on t2.CLOSE_TIME = '1985-11-01 00:00:00' where (t2.CMD=4 or t2.CMD=6 ) AND t2.LOGIN=t1.LOGIN ") or die(mysql_query());
$table = array();
$table['cols'] = array(
array('label' => 'Category', 'type' => 'string'),
array('label' => 'Value', 'type' => 'number')
);
$p = 0;
$l = 0;
$profit = 0;
$loss = 0;
while ($r = mysql_fetch_array($sql)) {
if ($r[PROFIT] > 0) {
$p++;
$profit += $r[PROFIT];
}
else if ($r[PROFIT] <= 0) {
$l++;
$loss += $r[PROFIT];
}
}
$noacc = $p + $l;
$table['rows'][] = array(array('v' => 'No Acc'), array('v' => $noacc));
$table['rows'][] = array(array('v' => 'Profit'), array('v' => $p));
$table['rows'][] = array(array('v' => 'Loss'), array('v' => $l));
$jsonTable = json_encode($table);
echo $jsonTable;
Why do you need such a complicated structure for data
. You can return following json from the PHP script:
data = [
['label','value'],
['No Acc',1199],
['Profit',261],
['Loss',938]
];