<?php
include "../libchart/libchart/classes/libchart.php";
define('DB_HOST', 'localhost');
define('DB_NAME', 'login');
define('DB_USER','root');
define('DB_PASSWORD','');
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
header("Content-type: image/png");
$chart = new PieChart(500, 300);
$query = "Select (Select count(*) from users where gender='Male') AS Male, (Select count(*) from users where gender='Female') as Female";
$data = mysql_query($query);
$male=$data[0]['Male'];
$female=$data[0]['Male'];
$dataSet = new XYDataSet();
$dataSet->addPoint(new Point("Male", $male));
$dataSet->addPoint(new Point("Female", $female));
$chart->setDataSet($dataSet);
$chart->setTitle("Number of Female and Male");
$chart->render();
?>
PHP counting Male and Female in the database to CHART
Question
I'm using libchart
in my PHP
but I have problem on how I can count the males and females in my Database. I'm using wampserver
:
<?php
include "../libchart/libchart/classes/libchart.php";
define('DB_HOST', 'localhost');
define('DB_NAME', 'login');
define('DB_USER','root');
define('DB_PASSWORD','');
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
header("Content-type: image/png");
$chart = new PieChart(500, 300);
$query1= "Select count(*) from users where gender='Male'";
$query2= "Select count(*) from users where gender='Female'";
$male=$query1;
$female=$query2;
$dataSet = new XYDataSet();
$dataSet->addPoint(new Point("Male", $male));
$dataSet->addPoint(new Point("Female", $female));
$chart->setDataSet($dataSet);
$chart->setTitle("Number of Female and Male");
$chart->render();
?>
La solution
Autres conseils
You never bother EXECUTING your queries - all you're doing is defining some strings that have SQL in them. Plus, there's no need for two separate queries:
$sql = "SELECT gender, count(*) AS cnt FROM users WHERE gender IN ('Male', 'Female') GROUP BY gender");
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$dataSet->addPoint(new Point($row['gender'], $row['cnt']));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow