Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 106,798

HOME > PHP > PHP Forum > ตารางปิดงานของพนักงานวันเดือนปี จะให้โชว์ผลรวมยังไงหรอครับ


 

ตารางปิดงานของพนักงานวันเดือนปี จะให้โชว์ผลรวมยังไงหรอครับ

 



Topic : 132796



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์




ผลรวม

Code (PHP)
<center><h3>ตารางวันเวลา LAY</h3></center>  
	<!--เริ่มต้นตาราง-->
<div class="table-responsive">
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
	<table >
		<tr>
			<td>ระบุเดือน-ปี : </td>
			<td>
				<select name="txt_month">
					<option value="">--------------</option>
					<?php
					$month = array('01' => 'มกราคม', '02' => 'กุมภาพันธ์', '03' => 'มีนาคม', '04' => 'เมษายน', 
									'05' => 'พฤษภาคม', '06' => 'มิถุนายน', '07' => 'กรกฎาคม', '08' => 'สิงหาคม', 
									'09' => 'กันยายน ', '10' => 'ตุลาคม', '11' => 'พฤศจิกายน', '12' => 'ธันวาคม');
					$txtMonth = isset($_POST['txt_month']) && $_POST['txt_month'] != '' ? $_POST['txt_month'] : date('m');
					foreach($month as $i=>$mName) {
						$selected = '';
						if($txtMonth == $i) $selected = 'selected="selected"';
						echo '<option value="'.$i.'" '.$selected.'>'. $mName .'</option>'."\n";
					}
					?>
				</select>
			</td>
			<td>
				<select name="txt_year">
					<option value="">--------------</option>
					<?php
					$txtYear = (isset($_POST['txt_year']) && $_POST['txt_year'] != '') ? $_POST['txt_year'] : date('Y');

					$yearStart = date('Y');
					$yearEnd = $txtYear-5;

					for($year=$yearStart;$year > $yearEnd;$year--){
						$selected = '';
						if($txtYear == $year) $selected = 'selected="selected"';
						echo '<option value="'.$year.'" '.$selected.'>'. ($year+543) .'</option>'."\n";
					}
					?>
				</select>
			</td>
			<td><input type="submit" value="ค้นหา" /></td>
		</tr>
	</table>
</form>
<br>
<?php
//รับค่าตัวแปรที่ส่งมาจากแบบฟอร์ม HTML
$year = isset($_POST['txt_year']) ? mysqli_real_escape_string($con,$_POST['txt_year']) : '';
$month = isset($_POST['txt_month']) ? mysqli_real_escape_string($con,$_POST['txt_month']) : '';
if($year == '' || $month == '') exit('<p class="fail">กรุณาระบุ "เดือน-ปี" ที่ต้องการเรียกรายงาน</p>');
//ดึงข้อมูลพนักงานทั้งหมด
$allEmpData = array();
$strSQL = "SELECT * FROM user a,blockzone b
WHERE a.bz_id = b.bz_id
 order by a.bz_id asc";
$qry = mysqli_query($con , $strSQL) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
while($row = mysqli_fetch_assoc($qry)){
	$allEmpData[$row['no_user']] = array ('empname'=> $row['user_name'],'blockzone'=>$row['bz_name']);
}
/*echo "<pre>";
print_r($allEmpData);
echo "</pre>";*/
//เรียกข้อมูลการจองของเดือนที่ต้องการ 
$allReportData = array();
$strSQL = "SELECT no_user, DAY(`time`) AS time, COUNT(*) AS numBook FROM `lay` ";
$strSQL.= "WHERE `time` LIKE '$year-$month%' ";
$strSQL.= "GROUP by no_user,DAY(`time`)";
$qry = mysqli_query($con , $strSQL) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
while($row = mysqli_fetch_assoc($qry)){
	$allReportData[$row['no_user']][$row['time']] = $row['numBook'];
}

echo "<table class='table table-bordered table-sm' >";
echo '<tr class="table-primary">';//เปิดแถวใหม่ ตาราง HTML
echo '<th>blockzone</th>';
echo '<th>รายชื่อพนักงาน</th>';

//วันที่สุดท้ายของเดือน
$timeDate = strtotime($year.'-'.$month."-01");  //เปลี่ยนวันที่เป็น timestamp
$lastDay = date("t", $timeDate);   				//จำนวนวันของเดือน

//สร้างหัวตารางตั้งแต่วันที่ 1 ถึงวันที่สุดท้ายของดือน
for($day=1;$day<=$lastDay;$day++){
	echo '<th>' . substr("0".$day, -2) . '</th>';
}
echo '<th>ผลรวม</th>';
echo "</tr>";

foreach($allEmpData as $noUser => $array){
$emp_name = $array['empname'];
$bz_id = $array['blockzone'];
	echo '<tr>';//เปิดแถวใหม่ ตาราง HTML
	echo '<td>'. $bz_id .'</td>';
	echo '<td>'. $emp_name.'</td>';
	
	//เรียกข้อมูลการจองของพนักงานแต่ละคน ในเดือนนี้	
	for($j=1;$j<=$lastDay;$j++){
		$numBook = isset($allReportData[$noUser][$j]) ? '<div>'.$allReportData[$noUser][$j].'</div>' : 0;
		echo "<td class='number'>", $numBook, "</td>";	
	}
	echo '</tr>';//ปิดแถวตาราง HTML	
}
echo "</table>";


mysqli_close($con);//ปิดการเชื่อมต่อฐานข้อมูล
?>
</div>
</div>


พอดีผมสงสัยอ่ะครับ ว่าทำไงให้ผลรวมออกมาได้ครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-12-19 15:12:31 By : ttouch View : 102 Reply : 3
 

 

No. 1



โพสกระทู้ ( 132 )
บทความ ( 0 )



สถานะออฟไลน์


Code (PHP)
<center><h3>ตารางวันเวลา LAY</h3></center>  
	<!--เริ่มต้นตาราง-->
<div class="table-responsive">
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
	<table >
		<tr>
			<td>ระบุเดือน-ปี : </td>
			<td>
				<select name="txt_month">
					<option value="">--------------</option>
					<?php
					$month = array('01' => 'มกราคม', '02' => 'กุมภาพันธ์', '03' => 'มีนาคม', '04' => 'เมษายน', 
									'05' => 'พฤษภาคม', '06' => 'มิถุนายน', '07' => 'กรกฎาคม', '08' => 'สิงหาคม', 
									'09' => 'กันยายน ', '10' => 'ตุลาคม', '11' => 'พฤศจิกายน', '12' => 'ธันวาคม');
					$txtMonth = isset($_POST['txt_month']) && $_POST['txt_month'] != '' ? $_POST['txt_month'] : date('m');
					foreach($month as $i=>$mName) {
						$selected = '';
						if($txtMonth == $i) $selected = 'selected="selected"';
						echo '<option value="'.$i.'" '.$selected.'>'. $mName .'</option>'."\n";
					}
					?>
				</select>
			</td>
			<td>
				<select name="txt_year">
					<option value="">--------------</option>
					<?php
					$txtYear = (isset($_POST['txt_year']) && $_POST['txt_year'] != '') ? $_POST['txt_year'] : date('Y');

					$yearStart = date('Y');
					$yearEnd = $txtYear-5;

					for($year=$yearStart;$year > $yearEnd;$year--){
						$selected = '';
						if($txtYear == $year) $selected = 'selected="selected"';
						echo '<option value="'.$year.'" '.$selected.'>'. ($year+543) .'</option>'."\n";
					}
					?>
				</select>
			</td>
			<td><input type="submit" value="ค้นหา" /></td>
		</tr>
	</table>
</form>
<br>
<?php
//รับค่าตัวแปรที่ส่งมาจากแบบฟอร์ม HTML
$year = isset($_POST['txt_year']) ? mysqli_real_escape_string($con,$_POST['txt_year']) : '';
$month = isset($_POST['txt_month']) ? mysqli_real_escape_string($con,$_POST['txt_month']) : '';
if($year == '' || $month == '') exit('<p class="fail">กรุณาระบุ "เดือน-ปี" ที่ต้องการเรียกรายงาน</p>');
//ดึงข้อมูลพนักงานทั้งหมด
$allEmpData = array();
$strSQL = "SELECT * FROM user a,blockzone b
WHERE a.bz_id = b.bz_id
 order by a.bz_id asc";
$qry = mysqli_query($con , $strSQL) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
while($row = mysqli_fetch_assoc($qry)){
	$allEmpData[$row['no_user']] = array ('empname'=> $row['user_name'],'blockzone'=>$row['bz_name']);
}
/*echo "<pre>";
print_r($allEmpData);
echo "</pre>";*/
//เรียกข้อมูลการจองของเดือนที่ต้องการ 
$allReportData = array();
$strSQL = "SELECT no_user, DAY(`time`) AS time, COUNT(*) AS numBook FROM `lay` ";
$strSQL.= "WHERE `time` LIKE '$year-$month%' ";
$strSQL.= "GROUP by no_user,DAY(`time`)";
$qry = mysqli_query($con , $strSQL) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
while($row = mysqli_fetch_assoc($qry)){
	$allReportData[$row['no_user']][$row['time']] = $row['numBook'];
}

echo "<table class='table table-bordered table-sm' >";
echo '<tr class="table-primary">';//เปิดแถวใหม่ ตาราง HTML
echo '<th>blockzone</th>';
echo '<th>รายชื่อพนักงาน</th>';

//วันที่สุดท้ายของเดือน
$timeDate = strtotime($year.'-'.$month."-01");  //เปลี่ยนวันที่เป็น timestamp
$lastDay = date("t", $timeDate);   				//จำนวนวันของเดือน

//สร้างหัวตารางตั้งแต่วันที่ 1 ถึงวันที่สุดท้ายของดือน
for($day=1;$day<=$lastDay;$day++){
	echo '<th>' . substr("0".$day, -2) . '</th>';
}
echo '<th>ผลรวม</th>';
echo "</tr>";

foreach($allEmpData as $noUser => $array){
$emp_name = $array['empname'];
$bz_id = $array['blockzone'];
	echo '<tr>';//เปิดแถวใหม่ ตาราง HTML
	echo '<td>'. $bz_id .'</td>';
	echo '<td>'. $emp_name.'</td>';
	
	//เรียกข้อมูลการจองของพนักงานแต่ละคน ในเดือนนี้	
        $sumBook = 0;
	for($j=1;$j<=$lastDay;$j++){
		$numBook = isset($allReportData[$noUser][$j]) ? '<div>'.$allReportData[$noUser][$j].'</div>' : 0;
		echo "<td class='number'>", $numBook, "</td>";	

                $sumBook += @$allReportData[$noUser][$j];
	}
        echo "<td>", $sumBook, "</td>";
	echo '</tr>';//ปิดแถวตาราง HTML	
}
echo "</table>";


mysqli_close($con);//ปิดการเชื่อมต่อฐานข้อมูล
?>
</div>
</div>







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-12-19 17:38:15 By : Jatmentz
 


 

No. 2



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : Jatmentz เมื่อวันที่ 2018-12-19 17:38:15
รายละเอียดของการตอบ ::
... ขอบคุณมากครับ ผมจะเขียนเองก็เขียนไม่ได้ ผมยังไม่เข้าใจโค้ดดีพอ.......

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-12-20 09:17:57 By : ttouch
 

 

No. 3



โพสกระทู้ ( 132 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : ttouch เมื่อวันที่ 2018-12-20 09:17:57
รายละเอียดของการตอบ ::
ศึกษาไปเรื่อยๆครับ
ไม่มีใครเป็นตั้งแต่วันแรกหรอกครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-12-20 09:21:15 By : Jatmentz
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ตารางปิดงานของพนักงานวันเดือนปี จะให้โชว์ผลรวมยังไงหรอครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, vps | เช่า vps , รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่