|
|
|
สอบถามหน่อยครับ ถ้ากรอกข้อมูล ครบทุกฟิลล์ ก็จะบันทึก ได้ ปกติ แต่กรณี ถ้า ไม่เลือกไฟล์ ก็จะไม่บันทึกครับ ต้องแก้ตรงไหนคัฟ ถึงจะใหเเลือกไฟล์ หรือ ไม่เลือก ก็ได้ แต่ให้บันทึกข้อมูลได้ insert into ผมผิดตรงไหนมั่ยครับ ช่วยชี้แนะหน่อยครับ |
|
|
|
|
|
|
|
Code (PHP)
<?
if ($_POST["button"]=="บันทึก"){
function CheckPublicHoliday($strChkDate){// function เช็คหาวันทีมีวันหยุดราชการ
$query = "SELECT * FROM publicholiday WHERE publicholiday_year = '".$strChkDate."' ";
$objQuery = mysql_query($query);
$objResult = mysql_fetch_array($objQuery);
if(!$objResult){
return false;
}
else{
echo $objResult['publicholiday_details'];
return true;
}
mysql_close($objConnect);
}
function holiday($strStartDate,$strEndDate){
// ค่าเริ่มต้น รับวันเริ่มหยุด $strStartDate
// ค่าเริ่มต้น รับวันสิ้นสุดหยุด $strEndDate
$intWorkDay = 0;
$intHoliday = 0;
$intPublicHoliday = 0;
$intTotalDay = ((strtotime($strEndDate) - strtotime($strStartDate))/ ( 60 * 60 * 24 )) + 1; // หาจำนวนวันตั้งวันที่เริ่มหยุด ถึง วันที่สิ้นสุดหยุด รวมทั้ง ส อ
while (strtotime($strStartDate) <= strtotime($strEndDate)) { // นับค่าจากวันที่เริ่มหยุด จากน้อยกว่าจนมีค่าเท่ากันกับ วันที่สิ้นสุดการหยุด
$DayOfWeek = date("w", strtotime($strStartDate)); // จำนวนสัปดาห์ทั้งหมดนับตั้งแต่วันที่เริ่มหยุด
if($DayOfWeek == 0 or $DayOfWeek ==6){ // 0 = Sunday, 6 = Saturday;
$intHoliday++;
echo "$strStartDate = <font color=red>วันหยุด ส อ</font><br>"; // โชว์ค่าให้เห็นสำหรับวันหยุด ส อ
}
elseif(CheckPublicHoliday($strStartDate)){
$intPublicHoliday++;
echo "$strStartDate = <font color=#fff>วันหยุดราชการ</font><br>"; // โชว์ค่าให้เห็นสำหรับวันหยุด ราชการ
}
else{
$intWorkDay++;
echo "$strStartDate = <b>วันที่ลา</b><br>"; // โชว์ค่าวันที่ลา
}
$strStartDate = date ("Y-m-d", strtotime("+1 day", strtotime($strStartDate)));
}
/*echo "<hr><p style='font-size:12px;'>";
echo "วันที่เริ่ม = $strStartDate <br>";
echo "วันที่สินสุด = $strEndDate";
echo "<br>วันหยุดทั้งหมดรวมเสาร์-อาทิตย์ = $intTotalDay";
echo "<br>วันลาทั้งหมดไม่รวม ส อ และวันหยุดราชการ = $intWorkDay";
echo "<br>วันหยุดเสาร์-อาทิตย์ = $intHoliday";
echo "<br>วันหยุดราชการ = $intPublicHoliday";*/
return $intWorkDay;
}
$Leave_number = holiday($_POST['Leave_date'],$_POST['Leave_date1']); // จำนวนวันที่ลาที่ไม่รวม ส อ และวันหยุดราชการ
//============ บันทึกข้อมูลการลา
$strSQL="SELECT*FROM quotas WHERE Quota_id='".$_POST["Quota_id"]."' ";
$objQuery=mysql_query($strSQL);
$objResult=mysql_fetch_array($objQuery);
if($objResult['Quota_number']<=$Leave_number){// เรียกข้อมูลมาจากฟิลล์ Quota_number ว่าจำนวนวันลาคงเหลือกี่วัน เพื่อที่จะได้มาจากการเปรียบเทียบวันหยุดว่าหยุดกี่วัน $Leave_number
echo "<script>alert('คุณได้ใช้สิทธิการลารายการนี้หมดแล้ว เหลือ $objResult[Quota_number] วัน กรุณาเลือกใช้สิทธิการลาประเภทอื่น ค่ะ');history.back();</script>";
}elseif($objResult['Quota_number']>=$Leave_number){
$new_id = mysql_result(mysql_query("Select Max(Leave_id)+1 as MaxID from leave_leave"),0,"MaxID");// การรันรหัส อัติโนมัติ เลือกเอาค่า id ที่มากที่สุดในฐานข้อมูลและบวก 1 เข้าไปด้วยเลย
if($new_id==''){ // ถ้าได้เป็นค่าว่าง หรือ null ก็แสดงว่ายังไม่มีข้อมูลในฐานข้อมูล
$Leave_id="00001";
}else{
$Leave_id=sprintf("%05d",$new_id);//ถ้าไม่ใช่ค่าว่าง
}
$data=$objResult['Quota_number'];//เรียก ฟิลล์ Quota_number มา เพื่อ เรียกจำนวนสิทธิการลาหยุดมาคำนวน
$quotas_num = $data-$Leave_number;//ตัวแปร $data ใช้แปล เรียกค่า Quota_number จากตาราง quotas
$file = iconv("UTF-8", "TIS-620", $_FILES["Leave_doc"]["name"]);// แปลงค่าให้เป็นภาษาไทย
if(copy($_FILES["Leave_doc"]["tmp_name"],"file_quotas/".$file)){// file_quotas นี้คือโฟล์เดอร์ที่สร้าง
$Emp_id=$_SESSION["Emp_id"];
$sql="insert into leave_leave
(Leave_id,Quota_id,Leave_date,Leave_date1,Leave_number,quotas_num,Leave_reason,Leave_doc,Leave_tell,Leave_note,Emp_id,Leader_id,Manager_id
)
values('".$Leave_id."',
'$Quota_id','$Leave_date','$Leave_date1','".$Leave_number."','".$quotas_num."','$Leave_reason','".$_FILES["Leave_doc"]["name"]."','$Leave_tell','$Leave_note','$Emp_id','$Leader_id','$Manager_id')";
$query = mysql_query($sql)or die("myasql error ('$sql')");
if ($query){
echo "<script language='javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว')</script>";//Message box แจ้งเตือน
echo "<meta http-equiv='refresh' content='0 ;url=emp_editleaveemp.php'>";
}else {
echo "บันทึกข้อมูลไม่สำเร็จ";
}
}
}
}
?>
Tag : PHP
|
|
|
|
|
|
Date :
2016-06-19 18:03:07 |
By :
narutokarp |
View :
845 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใน Database มันจะมีให้เลือกติ๊ก Null อะครับ หมายถึง attribute นั้นเป็น Null ได้ถ้ามีเครื่องหมายติ๊กอยู่
|
|
|
|
|
Date :
2016-06-19 18:37:31 |
By :
beelzerbub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|