|
|
|
ช่วยดูโค้ดให้หน่อยคับ เขียนแล้วผลไม่ไปอย่างที่หวัง |
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
ผมเขียนโค้ดการเช็ควันลาของพนักงาน แล้วผลปรากฏว่า มันเช็คให้เมื่อเลือกช่วงวันที่น้อยกว่าวันที่เริ่มคันหา และมากกว่าวันสุดท้ายอ่ะคับ ใครพอจะช่วยได้ไหมคับผมสุดปัญญาแล้วอ่ะคับ
///// โค้ดคับ
<?
$day = array( "1"=>01,"2"=>02,"3"=>03,"4"=>04,"5"=>05,"6"=>06,
"7"=>07,"8"=>08,"9"=>09,"10"=>10,"11"=>11,"12"=>12, "13"=>13,"14"=>14,"15"=>15,"16"=>16,"17"=>17,"18"=>18,
"19"=>19,"20"=>20,"21"=>21,"22"=>22,"23"=>23,"24"=>24,
"25"=>25,"26"=>26,"27"=>27,"28"=>28,"29"=>29,"30"=>30,
"31"=>31
);
$mouth = array( "มกราคม"=>01,"กุมภาพันธ์"=>02,"มีนาคม"=>03,"เมษายน"=>04,
"พฤษภาคม"=>05,"มิถุนายน"=>06,"กรกฏาคม"=>07,"สิงหาคม"=>08,
"กันหายน"=>09,"ตุลาคม"=>10,"พฤศจิกายน"=>11,"ธันวาคม"=>12
);
$year = array( "2540"=>1997,"2541"=>1998,"2542"=>1999,"2543"=>2000,
"2544"=>2001,"2545"=>2002,"2546"=>2003,"2547"=>2004,
"2548"=>2005
);
$Sday = $day[$startday];
$Smouth =$mouth$startmouth];
$Syear = $year[$startyear];
$Eday = $day[$endday];
$Emouth = $mouth[$endmouth];
$Eyear = $year[$endyear];
?>
<HTML>
<HEAD><TITLE>ตรวจสอบวันลา</TITLE>
</HEAD><BODY>
<?
if ($user==""){
echo "$user กรุณากรอกรหัส <a href=\"File1.php\">back</a>";
}
else if (!(checkdate($Smouth,$Sday,$Syear))){ echo "$Smouth,$Sday,$Syear,$startmouth,<BR>";
echo "กรุณาใส่ วัน/เดือน/ปี ช่วงเริ่มต้น ให้ถูกต้อง
<a href=\"File1.php\">back</a>";
}
else if (!(checkdate($Emouth,$Eday,$Eyear))){
echo "กรุณาใส่ วัน/เดือน/ปี ช่วงสุดท้าย ให้ถูกต้อง
<a href=\"File1.php\">back</a>";
}
else if (mktime($Smouth,$Sday,$Syear)>
mktime($Emouth,$Eday,$Eyear))
{
echo "กรุณาใส่ วัน/เดือน/ปี ในช่วงเวลาที่ถูกต้อง
<a href=\"File1.php\">back</a>";
}
else{
$dsn = "myDb"; $id = "user"; $pass = "pass";
$conn = odbc_connect($dsn, $id , $pass);
$sql= "Select * From TimeCard where Prcode='$user'";
$result = odbc_exec($conn, $sql);
$u= odbc_result($result,"Prcode");
if ($u==""){
echo "$user ไม่มีรหัสนี้ กรุณากรอกรหัสใหม่อีกครั้ง
<a href=\"File1.php\">back</a>";
}else{
?>
<center>
<table border="1">
<tr>
<td colspan="3"><CENTER>แสดงวันลา</CENTER> </td>
</tr>
<tr>
<td width="17%"><CENTER>ลำดับที่</CENTER></td>
<td width="54%"><CENTER>วันลา</CENTER></td>
<td width="29%"><CENTER>แบบการลา</CENTER></td>
</tr>
<?
$i = 0; $flag2 = 0; $flag3 = 0; $flag4 = 0;
$start= (string)$Syear."-".(string)$Smouth."-".(string)$Sday." 00:00:00";
$end= (string)$Eyear."-".(string)$Emouth."-".(string)$Eday." 00:00:00";
while (odbc_fetch_row($result)){
$d = odbc_result($result,"Date");
if ($d==$start){
if ($d==$end){ $i++;
?>
<tr> <td><CENTER><? echo "$i"; ?></CENTER></td> <td><CENTER>
<? $d2 = changedate($d); echo "$d2"; ?>
</CENTER></td> <td><CENTER><? echo"$start ,$end";?></CENTER></td>
</tr>
<?
}
}
}
?>
</table>
ค้นหาใหม่อีกครั้ง <A HREF="File1.php">ที่นี่</A>
</center>
<?
}
}
?>
</BODY></HTML>
<?
////////////////////////////////changedate////////////////////////////////////////
function changedate($date){
$y = substr($date,0,4);
$y = (integer)$y;
$y = $y+543;
$y = (string)$y;
$mouths = array( "01"=>"มกราคม","02"=>"กุมภาพันธ์","03"=>"มีนาคม",
"04"=>"เมษายน","05"=>"พฤษภาคม","06"=>"มิถุนายน",
"07"=>"กรกฏาคม","08"=>"สิงหาคม","09"=>"กันหายน",
"10"=>"ตุลาคม","11"=>"พฤศจิกายน","12"=>"ธันวาคม"
);
$m = substr($date,5,2);
$m = $mouths[$m];
$d = substr($date,8,2);
$date = $d."-".$m."-".$y;
return $date;
}
?>
ลองทำดูก้อได้น่ะคับ มันผิดตรงไหนใครรู้ไหม อ้อเกือบลืม ผมทำไฟล์ไว้อีกตัวหนึ่ง เป็นรับค่า แบบ <Select></Select> วัน เดือน ปี และ ช่องกรอกรหัสพนักงาน
ช่วนหน่อยน่ะคับ
Author: snowa, Forum Member, Status: Offline
Posted: May 04, 2005 - 12:28 PM
--------------------------------------------------------------------------------
ผมเขียนโค้ดการเช็ควันลาของพนักงาน แล้วผลปรากฏว่า มันเช็คให้เมื่อเลือกช่วงวันที่น้อยกว่าวันที่เริ่มคันหา และมากกว่าวันสุดท้ายอ่ะคับ ใครพอจะช่วยได้ไหมคับผมสุดปัญญาแล้วอ่ะคับ
///// โค้ดคับ
<?
$day = array( "1"=>01,"2"=>02,"3"=>03,"4"=>04,"5"=>05,"6"=>06,
"7"=>07,"8"=>08,"9"=>09,"10"=>10,"11"=>11,"12"=>12, "13"=>13,"14"=>14,"15"=>15,"16"=>16,"17"=>17,"18"=>18,
"19"=>19,"20"=>20,"21"=>21,"22"=>22,"23"=>23,"24"=>24,
"25"=>25,"26"=>26,"27"=>27,"28"=>28,"29"=>29,"30"=>30,
"31"=>31
);
$mouth = array( "มกราคม"=>01,"กุมภาพันธ์"=>02,"มีนาคม"=>03,"เมษายน"=>04,
"พฤษภาคม"=>05,"มิถุนายน"=>06,"กรกฏาคม"=>07,"สิงหาคม"=>08,
"กันหายน"=>09,"ตุลาคม"=>10,"พฤศจิกายน"=>11,"ธันวาคม"=>12
);
$year = array( "2540"=>1997,"2541"=>1998,"2542"=>1999,"2543"=>2000,
"2544"=>2001,"2545"=>2002,"2546"=>2003,"2547"=>2004,
"2548"=>2005
);
$Sday = $day[$startday];
$Smouth =$mouth$startmouth];
$Syear = $year[$startyear];
$Eday = $day[$endday];
$Emouth = $mouth[$endmouth];
$Eyear = $year[$endyear];
?>
<HTML>
<HEAD><TITLE>ตรวจสอบวันลา</TITLE>
</HEAD><BODY>
<?
if ($user==""){
echo "$user กรุณากรอกรหัส <a href=\"File1.php\">back</a>";
}
else if (!(checkdate($Smouth,$Sday,$Syear))){ echo "$Smouth,$Sday,$Syear,$startmouth,<BR>";
echo "กรุณาใส่ วัน/เดือน/ปี ช่วงเริ่มต้น ให้ถูกต้อง
<a href=\"File1.php\">back</a>";
}
else if (!(checkdate($Emouth,$Eday,$Eyear))){
echo "กรุณาใส่ วัน/เดือน/ปี ช่วงสุดท้าย ให้ถูกต้อง
<a href=\"File1.php\">back</a>";
}
else if (mktime($Smouth,$Sday,$Syear)>
mktime($Emouth,$Eday,$Eyear))
{
echo "กรุณาใส่ วัน/เดือน/ปี ในช่วงเวลาที่ถูกต้อง
<a href=\"File1.php\">back</a>";
}
else{
$dsn = "myDb"; $id = "user"; $pass = "pass";
$conn = odbc_connect($dsn, $id , $pass);
$sql= "Select * From TimeCard where Prcode='$user'";
$result = odbc_exec($conn, $sql);
$u= odbc_result($result,"Prcode");
if ($u==""){
echo "$user ไม่มีรหัสนี้ กรุณากรอกรหัสใหม่อีกครั้ง
<a href=\"File1.php\">back</a>";
}else{
?>
<center>
<table border="1">
<tr>
<td colspan="3"><CENTER>แสดงวันลา</CENTER> </td>
</tr>
<tr>
<td width="17%"><CENTER>ลำดับที่</CENTER></td>
<td width="54%"><CENTER>วันลา</CENTER></td>
<td width="29%"><CENTER>แบบการลา</CENTER></td>
</tr>
<?
$i = 0; $flag2 = 0; $flag3 = 0; $flag4 = 0;
$start= (string)$Syear."-".(string)$Smouth."-".(string)$Sday." 00:00:00";
$end= (string)$Eyear."-".(string)$Emouth."-".(string)$Eday." 00:00:00";
while (odbc_fetch_row($result)){
$d = odbc_result($result,"Date");
if ($d==$start){
if ($d==$end){ $i++;
?>
<tr> <td><CENTER><? echo "$i"; ?></CENTER></td> <td><CENTER>
<? $d2 = changedate($d); echo "$d2"; ?>
</CENTER></td> <td><CENTER><? echo"$start ,$end";?></CENTER></td>
</tr>
<?
}
}
}
?>
</table>
ค้นหาใหม่อีกครั้ง <A HREF="File1.php">ที่นี่</A>
</center>
<?
}
}
?>
</BODY></HTML>
<?
////////////////////////////////changedate////////////////////////////////////////
function changedate($date){
$y = substr($date,0,4);
$y = (integer)$y;
$y = $y+543;
$y = (string)$y;
$mouths = array( "01"=>"มกราคม","02"=>"กุมภาพันธ์","03"=>"มีนาคม",
"04"=>"เมษายน","05"=>"พฤษภาคม","06"=>"มิถุนายน",
"07"=>"กรกฏาคม","08"=>"สิงหาคม","09"=>"กันหายน",
"10"=>"ตุลาคม","11"=>"พฤศจิกายน","12"=>"ธันวาคม"
);
$m = substr($date,5,2);
$m = $mouths[$m];
$d = substr($date,8,2);
$date = $d."-".$m."-".$y;
return $date;
}
?>
ลองทำดูก้อได้น่ะคับ มันผิดตรงไหนใครรู้ไหม อ้อเกือบลืม ผมทำไฟล์ไว้อีกตัวหนึ่ง เป็นรับค่า แบบ <Select></Select> วัน เดือน ปี และ ช่องกรอกรหัสพนักงาน
ช่วนหน่อยน่ะคับ
Tag : - - - -
|
|
|
|
|
|
Date :
6 พ.ค. 2548 00:52:24 |
By :
snowa |
View :
2686 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยาวจิงๆ
|
|
|
|
|
Date :
6 พ.ค. 2548 13:37:38 |
By :
โจผีนะ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ่านแล้วปวดหัว
|
|
|
|
|
Date :
7 พ.ค. 2548 14:32:14 |
By :
kanmanus |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|