1

I am trying to make a simple pie chart with data from a MySQL database. I have two queries,

$males="SELECT COUNT(JudgeGender) FROM case_info WHERE JudgeGender='M'";
$females="SELECT COUNT(JudgeGender) FROM case_info WHERE JudgeGender='F'";

These store the values of how many males and females there are in the db

Then I'm trying to use them in a google pie chart

<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

// Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {'packages':['corechart']});

// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);

// Callback that creates and populates a data table,
// instantiates the pie chart, passes in the data and
// draws it.
function drawChart() {

// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Gender');
data.addColumn('number', 'Number');
data.addRows([  
    ['Male', <?php echo $males; ?>],
    ['Female', <?php echo $females; ?>]
    ]);

// Set chart options
var options = {'title':'Judge Gender Breakdown',
                       '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> 
  </head>

  <body>
    <!--Div that will hold the pie chart-->
    <div id="chart_div"></div>
  </body>
</html>

The chart does not draw. Am I missing something? I have a feeling it's due to mismatched datatypes, but I'm not sure.

Thank you!

anthozep
  • 333
  • 5
  • 16
  • With the code you posted as-is, you would get this in your javascript: `['Male', SELECT COUNT(JudgeGender) FROM case_info WHERE JudgeGender='M']`, which will throw a syntax error. You need to run the queries against your database, and populate the variables with data returned by the query. It would help if you posted the output of your PHP (ie, the code that the browser sees) instead of the preprocessed code. Open the page in a browser, view the source, and update your post with the code. – asgallant Dec 16 '13 at 21:51
  • I should have said that "$males=..." is part of a larger PHP script. So it should return a number. I got the answer I needed from here: http://stackoverflow.com/a/16511917/3108787 You were correct in that I was not passing the parameters around correctly. Thank you! – anthozep Dec 16 '13 at 22:35

0 Answers0