 |
เขียนกราฟ อยากจะ SELECT COUNT 2 ตัวแยกประเภทชาย-หญิง อ่ะครับ |
|
 |
|
|
 |
 |
|
อยาก นับคอลัมน์ แยก gender ... ชาย as a ...หญิง as b ครับ
เขียนคำสั่ง sql ยังไงอ่ะครับ
Code (PHP)
require_once ("../include/connection.php");
$month=array(1=>'มกราคม',2=>'กุมภาพันธ์',3=>'มีนาคม',4=>'เมษายน',5=>'พฤษภาคม',6=>'มิถุนายน',7=>'กรกฎาคม',8=>'สิงหาคม',9=>'กันยายน',10=>'ตุลาคม',11=>'พฤศจิกายน',12=>'ธันวาคม');
$s1=" SELECT DATE_FORMAT(date2member,'%c') AS month,
count(userID) AS a,
10 AS b
FROM user WHERE YEAR(date2member) = '2014'
GROUP BY YEAR(date2member), MONTH(date2member) ORDER BY DATE_FORMAT(date2member,'%m') ASC ";
$rs_report=mysql_query($s1) or die(mysql_error());
$chart="['ประจำเดือน','a','b']";
while($show_report=mysql_fetch_array($rs_report))
{
$report_arr[$show_report['month']] = $show_report['a'];
$report_arr1[$show_report['month']] = $show_report['b'];
}
foreach($month as $key_m => $val_m)
{
$chart.=",['".$val_m."',".($report_arr[$key_m]*1).($report_arr1[$key_m]*1) ."]";
}
โค้ดอันนี้ได้กราฟแบบนี้ครับ


Tag : PHP, MySQL
|
ประวัติการแก้ไข 2014-07-22 13:10:19
|
 |
 |
 |
 |
Date :
2014-07-22 13:08:28 |
By :
jpong7 |
View :
2247 |
Reply :
2 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ด้านใน
Code (PHP)
while($show_report=mysql_fetch_array($rs_report))
{
$report_arr[$show_report['month']] = $show_report['a'];
$report_arr1[$show_report['month']] = $show_report['b'];
}
เปลี่ยนให้มีการตรวจสอบ
Code (PHP)
while($show_report=mysql_fetch_array($rs_report))
{
if (ตรวจสอบเพศตรงนี้ครับ) {
$report_arr[$show_report['month']] = $show_report['a'];
} else {
$report_arr1[$show_report['month']] = $show_report['a'];
}
}
ผมไม่ค่อยเคลียว่าจะให้ออกมารูปแบบใหนแต่มองดูแล้วตัวระบบสร้างกราฟใช้อาเรย์ในการสร้างกราฟขึ้นมาดังนั้นต้องตรวจสอบสิ่งที่อยากแยกและนำข้อมูลไปเก็บที่อาเรย์คนละตัวครับ
|
ประวัติการแก้ไข 2014-07-22 16:16:09
 |
 |
 |
 |
Date :
2014-07-22 16:14:45 |
By :
soghband |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : soghband เมื่อวันที่ 2014-07-22 16:14:45
รายละเอียดของการตอบ ::
ขอบคุณครับสำหรับไอเดียดีๆครับ
ตอนนี้ได้แล้วครับ
ผมเขียนแยก sql เป็น 2 อันไปเลยครับ
Code (PHP)
$month=array(1=>'มกราคม',2=>'กุมภาพันธ์',3=>'มีนาคม',4=>'เมษายน',5=>'พฤษภาคม',6=>'มิถุนายน',7=>'กรกฎาคม',8=>'สิงหาคม',9=>'กันยายน',10=>'ตุลาคม',11=>'พฤศจิกายน',12=>'ธันวาคม');
$s1=" SELECT DATE_FORMAT(date2member,'%c') AS month,gender,count(userID) AS male
FROM user WHERE YEAR(date2member) = '2014'
AND gender = 'ชาย'
GROUP BY YEAR(date2member), MONTH(date2member) ORDER BY DATE_FORMAT(date2member,'%m') ASC
";
$q1=mysql_query($s1) or die(mysql_error());
$s2=" SELECT DATE_FORMAT(date2member,'%c') AS month,gender,count(userID) AS female
FROM user WHERE YEAR(date2member) = '2014'
AND gender = 'หญิง'
GROUP BY YEAR(date2member), MONTH(date2member) ORDER BY DATE_FORMAT(date2member,'%m') ASC ";
$q2 = mysql_query($s2) or die(mysql_error());
//$chart="['เดือน','ชาย','หญิง']";
while($r1=mysql_fetch_array($q1))
{
$report_arr1[$r1['month']] = $r1['male'];
}
while ($r2=mysql_fetch_array($q2))
{
$report_arr2[$r2['month']] = $r2['female'];
}
foreach($month as $key_m => $val_m)
{
$chart=",['".$val_m."',".($report_arr1[$key_m]*1).($report_arr2[$key_m]*1) ."]";
}
|
 |
 |
 |
 |
Date :
2014-07-22 17:36:27 |
By :
jpong7 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|