|
|
|
สอบถามการนำข้อมูลจาก Database มาใส่ใน Array ครับ ขอบคุณครับ |
|
|
|
|
|
|
|
คือผมได้รับความช่วยเหลือจากคุณปลากริม เขียน function ให้ใช้ ทีนี้อยากดัดแปลงมาใช้ตัดวันหยุดนขัตฤกษ์ออกแทน โดยผมไปเขียนตารางให้เก็บวันหยุดในปี แล้วตั้งใจดึงข้อมูลมาใช้
Code (PHP)
function date_in_holiday($format, $start, $end, $skip = NULL){
$output = array();
$days = floor((strtotime($end) - strtotime($start))/86400);
for($i=0;$i<=$days;$i++){
$in_period = strtotime("+" . $i . " day", strtotime($start));
if(is_array($skip) and in_array(date("d-m-Y",$in_period), $skip)){
continue;
}
array_push($output, date($format, $in_period));
}
return $output;
}
ถ้าผมจะเอาข้อมูลใน Database มาใส่ใน Array ได้ยังไงครับ
Code (PHP)
<?
require "../inc/inc.common.php";
require "../inc/inc.menu.php";
mssql_connect("$hostname","$admin_name","$admin_password");
mssql_select_db("$database");
$query="SELECT dateHoliday FROM holiday";
$result=mssql_query($query);
$num=mssql_num_rows($result)
while ($row=mssql_fetch_array($result)) { $dateHoliday = "'".$row[dateHoliday]."', "; echo $dateHoliday;} mssql_close();
?>
output ที่ได้จาก $dateHoliday ที่อยู่ใน while คือ
Quote:'03-01-2011', '18-02-2011', '06-04-2011', '13-04-2011', '14-04-2011', '15-04-2011', '02-05-2011', '05-05-2011', '13-05-2011', '16-05-2011', '17-05-2011', '15-07-2011', '18-07-2011', '12-08-2011', '24-10-2011', '05-12-2011', '12-12-2011',
คือผมอยากสร้าง Array แบบลักษณะนี้
Code (PHP)
$date = date_in_holiday("d-m-Y", "$StartDate", "$EndDate", array ('03-01-2011', '18-02-2011', '06-04-2011', '13-04-2011', '14-04-2011', '15-04-2011', '02-05-2011', '05-05-2011', '13-05-2011', '16-05-2011', '17-05-2011', '15-07-2011', '18-07-2011', '12-08-2011', '24-10-2011', '05-12-2011', '12-12-2011', )
รบกวนช่วยแนะนำด้วยครับ
ขอบคุณครับ :
Tag : PHP
|
|
|
|
|
|
Date :
2011-04-07 20:46:03 |
By :
ParotZ |
View :
1395 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รอน้อง PlaKrim มาตอบให้น่ะครับ
|
|
|
|
|
Date :
2011-04-07 21:20:12 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ง่า.. ครับ
|
|
|
|
|
Date :
2011-04-07 21:49:06 |
By :
ParotZ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ เดี๋ยวจะลองศึกษาดูครับ
|
|
|
|
|
Date :
2011-04-07 22:04:47 |
By :
ParotZ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ ขอบคุณคุณปลากริม และคุณวินมากเลยครับ ขอบคุณอีกครั้งครับ
Code (PHP)
<?
## Require ##
require "inc/inc.common.php";
require "inc/inc.menu.php";
## Check Logon ##
session_start();
if(!session_is_registered(UserName))
{
header ("location:logon.php");
} else {}
## Check User Class ##
$class = $_SESSION["UserClass"];
$EmpCode= $_SESSION["EmpCode"];
## Check User Status ##
$status = $_SESSION["UserStatus"];
if ($status!="Active") {header ("location:error_user_expire.php");}
## Get form post ##
$StartDate=$_POST['StartDate'];
$EndDate=$_POST['EndDate'];
$LeaveType=$_POST['LeaveType'];
$remarks=$_POST['remarks'];
$empCode=$_POST['empCode'];
$status=$_POST['status'];
## Connect to Database ##
mssql_connect("$hostname","$admin_name","$admin_password");
mssql_select_db("$database");
## Public holidays Holiday ##
$year = date("Y");
$query="SELECT dateHoliday FROM holiday WHERE dateHoliday LIKE '%$year'";
$result=mssql_query($query);
$num=mssql_num_rows($result);
$dateHoliday=array(); while ($row=mssql_fetch_array($result)) { $dateHoliday[]= $row[dateHoliday];} mssql_close();
## Leave ##
function date_in_period($format, $start, $end, $skip = NULL){
$output = array();
$days = floor((strtotime($end) - strtotime($start))/86400);
for($i=0;$i<=$days;$i++){
$in_period = strtotime("+" . $i . " day", strtotime($start));
if(is_array($skip) and in_array(date("D",$in_period), $skip)){
continue;
}
array_push($output, date($format, $in_period));
}
return $output;
}
$date = date_in_period("D-d-m-Y", "$StartDate", "$EndDate");
foreach($date as $day) $LeaveDate = count($date);
## Weekend Skip ##
$date = date_in_period("D-d-m-Y", "$StartDate", "$EndDate", array("Sat","Sun"));
foreach($date as $day) $weekend = ($LeaveDate - count($date));
## Public holidays Skip ##
function date_in_holiday($format, $start, $end, $skip = NULL){
$output = array();
$days = floor((strtotime($end) - strtotime($start))/86400);
for($i=0;$i<=$days;$i++){
$in_period = strtotime("+" . $i . " day", strtotime($start));
if(is_array($skip) and in_array(date("d-m-Y",$in_period), $skip)){
continue;
}
array_push($output, date($format, $in_period));
}
return $output;
}
$date = date_in_holiday("d-m-Y", "$StartDate", "$EndDate", $dateHoliday);
foreach($date as $day) $holiday = ($LeaveDate - count($date)); $absent = ($LeaveDate-($weekend+$holiday));
echo "Leave ".$LeaveDate." days, Weekend ".$weekend." days, Holiday ".$holiday." days, Absent Working day ".$absent;
?>
|
ประวัติการแก้ไข 2011-04-07 23:32:54 2011-04-08 00:21:32 2011-04-08 00:23:56
|
|
|
|
Date :
2011-04-07 23:30:32 |
By :
ParotZ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดีครับแก้เองได้ เยี่ยม ไปได้อีกขั้นนึงละ
|
|
|
|
|
Date :
2011-04-08 01:02:15 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|