|
|
|
การนำค่าวันที่ มาแสดงเป็นจำนวน ในรูปฏิทิน เกี่ยวกับการนำข้อมูลใน Mysql ที่เก็บในรูปวันที่ ออกมาแสดง โดยนับจำนวนครั้ง |
|
|
|
|
|
|
|
ได้อยู่แล้วครับ
แต่คุณต้องบอกด้วยว่าจะคำนวนอะไร
|
|
|
|
|
Date :
2013-06-08 06:52:45 |
By :
itpcc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมต้องการนับว่า แต่ละวัน มี user ทำรายการกี่ครั้ง สมมุติ ว่า นาย ก ทำรายการ วันที่ 08/06/2013 3 ครั้ง ผมจะเขียนโค้ดนับ 08/06/2013,08/06/2013,08/06/2013 ให้มีค่าเท่ากับ 3 ยังไง ครับ
|
|
|
|
|
Date :
2013-06-08 07:51:28 |
By :
comtest |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เก็บค่าไว้ใน array 2 มิติก็ได้ครับ
$time_to_do['ชื่อหรือรัหสนาย ก']['วันที่'];
วิธีที่เก็บ ก็ประมาณว่า
Code (PHP)
//use Mysqli in OOP style
$ttd = array;
while($row = $result->fetch_assoc()){
//ให้ชื่อผู้ใช้คอลัมน์ว่า name
//ให้วันที่ของการทำรายการชื่อ date_do เพื่อเลี่ยง reverse word (ขี้เกียจตอบคุณแมวคุกกี้)
if(!isset($ttd[$row['name']][$row['date_do']])) $ttd[$row['name']][$row['date_do']] = 1;
else $ttd[$row['name']][$row['date_do']]++;
}
เวลาใช้ก็
Code (PHP)
foreach($ttd AS $name => $dateName){
printf('<tr><td class="head_row">%s</td>',$name);
foreach($dateName AS $date => $cnt)
printf('<td>วันที่ %s : %d ครั้ง</td>',$date,$cnt);
echo '/<tr>';
}
|
ประวัติการแก้ไข 2013-06-08 08:17:13
|
|
|
|
Date :
2013-06-08 08:16:52 |
By :
itpcc |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SELECT ชื่อพนักงาน, COUNT(*) AS amountPerDay FROM ตารางยอด
GROUP by ชื่อพนักงาน,วันที่
เก็บข้อมูลอยู่ในรูปแบบอาร์เรย์ โดยมีคีย์เป็น รหัสพนักงาน
และมี value เป็นอาร์เรย์ที่มีคีย์เป็นวันที่ และ value เป็นจำนวนที่ทำได้ในแต่ละวัน
$data[พนักงานคนที่1] = array( '02' => 2, '08' => 3)
$data[พนักงานคนที่2] = array( '11' => 1, '25' => 7)
เมื่อวนลูปสร้างตาราง ให้เอารหัสพนักงานของแถวปัจจุบันมาเทียบว่ามีข้อมูลตามวันที่แต่ละคอลัมน์หรือไม่
if(in_array($day, $data[$rs['empId']]){
//แสดงจำนวนของวันที่นี้
}
|
ประวัติการแก้ไข 2013-06-08 09:28:05
|
|
|
|
Date :
2013-06-08 09:27:33 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมาครับ ผมจะลองประยุกต์ดูครับ
|
|
|
|
|
Date :
2013-06-10 16:21:24 |
By :
comtest |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เรียน คุณ itpcc และ Cyberman
ผมลองแล้ว ค่าที่ได้ไม่แสดงเลยคับ ผมเอาฐานข้อมูล ทำเป็นตัวอย่างให้ คุณ ช่วยเขียนโค้ดง่ายๆ ทำเป็นตัวอย่างได้ไหมครับ
Code (PHP)
CREATE TABLE `tb_employee` (
`Em_ID` int(11) NOT NULL auto_increment,
`Name` varchar(50) default NULL COMMENT 'ชื่อ USER',
PRIMARY KEY (`Em_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
--
-- dump ตาราง `tb_employee`
--
INSERT INTO `tb_employee` VALUES (1, 'Test1');
INSERT INTO `tb_employee` VALUES (2, 'Test2');
CREATE TABLE `tb_transaction` (
`Tr_ID` int(11) NOT NULL auto_increment,
`Em_ID` varchar(255) default NULL COMMENT 'ID USER',
`Date_create` varchar(255) default NULL COMMENT 'วันทำรายการ',
PRIMARY KEY (`Tr_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
--
-- dump ตาราง `tb_transaction`
--
INSERT INTO `tb_transaction` VALUES (1, '1', '08/06/2013');
INSERT INTO `tb_transaction` VALUES (2, '1', '08/06/2013');
INSERT INTO `tb_transaction` VALUES (3, '1', '08/06/2013');
INSERT INTO `tb_transaction` VALUES (4, '2', '10/06/2013');
INSERT INTO `tb_transaction` VALUES (5, '2', '10/06/2013');
|
|
|
|
|
Date :
2013-06-10 17:04:23 |
By :
comtest |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|