|
|
|
ถามปัญหาเกี่ยวกับโค๊ด ปฏิทินครับ เมื่อกดจนเลย เดือน 12 แล้ว เดื่อนมันวนกลับไป แต่ปีไม่เปลี่ยนครับ |
|
|
|
|
|
|
|
สวัสดีครับ พอดีผมได้โค๊ดปฏิทินมาจากรุ่นพี่เอามาศึกษา ลองรันดูแล้วปรากฎว่าเมื่อกดจนเลย เดือน 12 แล้ว เดื่อนมันวนกลับไป แต่ปีไม่เปลี่ยนครับ เข้าใจว่าอยู่ในช่วง if ในบรรทัดที่ 65-87 ลองใส่ตัวแปรแล้ว แต่ไม่มีอะไรเกิดขึ้นเลยครับ ปล.มือใหม่ครับ
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<link rel="shortcut icon" href="http://b.dryicons.com/images/icon_sets/blue_velvet/png/128x128/admin.png">
<title>Calendar</title>
<script type="text/javascript">
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
<style type="text/css">
#dhtmltooltip{
position: absolute;
left: -300px;
width: 150px;
border: 1px solid black;
padding: 2px;
background-color: lightyellow;
visibility: hidden;
z-index: 100;
/*Remove below line to remove shadow. Below line should always appear last within this CSS*/
filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135);
}
#dhtmlpointer{
position:absolute;
left: -300px;
z-index: 101;
visibility: hidden;
}
</style>
</head>
<body onload="MM_preloadImages('IMG/L_arrorw_2.gif','IMG/R_arrorw_2.gif')" bgcolor="">
<?
$M=$_GET['M'];
if($M==null)
{
$month=date('m');
}
else
{
if($M<1)
{
$M=12;
}
if($M>12)
{
$M=1;
}
$month=$M;
}
$year=date('Y');
$y=$year+543;
$day_now=date('d');
$mkdate=mktime(0,0,0,$month,1,$year);
$full_month=date('F',$mkdate);
$weekday=date('w',$mkdate);
$last_days=date('t',$mkdate);
$day=1;
$x=0;
$i=0;
$txt="";
$txt_link="";
$mt="";
switch ($full_month) //แปลงเดือนเป็นชื่อ
{
case "January":{$mt="มกราคม";break;}
case "February":{$mt="กุมภาพันธ์";break;}
case "March":{$mt="มีนาคม";break;}
case "April":{$mt="เมษายน";break;}
case "May":{$mt="พฤษภาคม";break;}
case "June":{$mt="มิถุนายน";break;}
case "July":{$mt="กรกฎาคม";break;}
case "August":{$mt="สิงหาคม";break;}
case "September":{$mt="กันยายน";break;}
case "October":{$mt="ตุลาคม";break;}
case "November":{$mt="พฤษจิกายน";break;}
case "December":{$mt="ธันวาคม";break;}
}
include("connection.php");
$sql ="SELECT tb_activity.ID,tb_activity.Date,Time_Start,End_Date,Time_End, Number_Of_Trainee,tb_activity.Course_No,Course_Name,Place,DATEDIFF(`End_Date`,`Date`) AS DiffDate FROM project1.tb_activity,project1.tb_course_code WHERE (Date BETWEEN '".$year."-".date('m',$mkdate)."-01' AND '".$year."-".date('m',$mkdate)."-".$last_days."') AND (tb_activity.Course_No=CONCAT(tb_course_code.Course_Type,tb_course_code.Course_No))";
$result = mysql_query($sql)or die ("Error Query [".$sql."]");
while($row = mysql_fetch_array($result))
{
$txtArray[$x][0] = $row['Time_Start'];
$txtArray[$x][1] = $row['Date'];
$txtArray[$x][2] = $row['Time_End'];
$txtArray[$x][3] = $row['Number_Of_Trainee'];
$txtArray[$x][4] = $row['Course_No'];
$txtArray[$x][5] = $row['Course_Name'];
$txtArray[$x][6] = $row['Place'];
$txtArray[$x][7] = $row['End_Date'];
$txtArray[$x][8] = $row['DiffDate'];
$txtArray[$x][9] = $row['ID'];
$x++;
}
?>
<table cellpadding="0" cellspacing="0" border="1" style="border:thin; border-style:none;" align="center">
<tr bgcolor="#3399FF" valign="middle">
<td colspan="1" height="40" align="center" valign="middle" style="border-right:none;"><a href="calendar.php?M=<?= $month-1 ?>" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('LB','','IMG/L_arrorw_2.gif',1)"><img src="IMG/L_arrorw.gif" alt="เดือนก่อน" name="LB" width="25" height="25" border="0" id="LB" /><font size="2" >เดือนที่แล้ว</font></a></td>
<td colspan="5" height="40" align="center" style="border-left:none; border-right:none;"><center><b><? echo "$mt $y"; ?></b></center></td>
<td colspan="1" height="40" align="center" valign="middle" style="border-left:none;"><a href="calendar.php?M=<?= $month+1 ?>" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('RB','','IMG/R_arrorw_2.gif',1)"><font size="2">เดือนถัดไป</font><img src="IMG/R_arrorw.gif" alt="เดือนถัดไป" name="RB" width="25" height="25" border="0" id="RB" /></a></td>
</tr>
<tr bgcolor="#CCCCCC">
<td width="110" align="center" height="20"><img src="IMG/day/day_01.gif" width="110" height="20" /></td>
<td width="110" align="center" height="20"><img src="IMG/day/day_02.gif" width="110" height="20" /></td>
<td width="110" align="center" height="20"><img src="IMG/day/day_03.gif" width="110" height="20" /></td>
<td width="110" align="center" height="20"><img src="IMG/day/day_04.gif" width="110" height="20" /></td>
<td width="110" align="center" height="20"><img src="IMG/day/day_05.gif" width="110" height="20" /></td>
<td width="110" align="center" height="20"><img src="IMG/day/day_06.gif" width="110" height="20" /></td>
<td width="110" align="center" height="20"><img src="IMG/day/day_07.gif" width="110" height="20" /></td>
</tr>
<tr height="100">
<?
$start=1;
while($start<=$weekday)
{
echo "<td background='IMG/day/number_b_1.gif'></td>";
$start++;
}
$weekday++;
while($day<=$last_days)
{
$next_day =mktime(0,0,0,$month,$day,$year);//วันที่โดย $day จะเปลี่ยนไปเรื่อยๆ
$chk=$year."-".date('m',$mkdate)."-".date('d',$next_day); //จัดรูปแบบให้เป็น Y-m-d เพื่อให้เหมือนกับข้อมูลใน DB
$txt=date('d',$next_day);//แสดงเฉพาะ วัน
$txt_list[0] =$txt."</br>";
$a=1;
for($i=0;$i<$last_days;$i++)
{ $dd=0;
if($txtArray[$i][1]==$chk)//ตรวจวันที่ใน DB กับหน้าเว็บ
{
$Course_No=$txtArray[$i][4];
$Course_name=$txtArray[$i][5];
$Number_Of_Trainee=$txtArray[$i][3];
$dd = $txtArray[$i][8]+1;//DiffDate จำนวนวันที่อบรม
$cid = $txtArray[$i][9];//Course ID
$temp_month = "";
switch (substr($txtArray[$i][1],5,2)) //แปลงเดือนเป็นชื่อ
{
case "01":{$temp_month="มกราคม";break;}
case "02":{$temp_month="กุมภาพันธ์";break;}
case "03":{$temp_month="มีนาคม";break;}
case "04l":{$temp_month="เมษายน";break;}
case "05":{$temp_month="พฤษภาคม";break;}
case "06":{$temp_month="มิถุนายน";break;}
case "07":{$temp_month="กรกฎาคม";break;}
case "08":{$temp_month="สิงหาคม";break;}
case "09":{$temp_month="กันยายน";break;}
case "10":{$temp_month="ตุลาคม";break;}
case "11":{$temp_month="พฤษจิกายน";break;}
case "12":{$temp_month="ธันวาคม";break;}
}
$sd = substr($txtArray[$i][1],8,2)." ".$temp_month;
switch (substr($txtArray[$i][7],5,2)) //แปลงเดือนเป็นชื่อ
{
case "01":{$temp_month="มกราคม";break;}
case "02":{$temp_month="กุมภาพันธ์";break;}
case "03":{$temp_month="มีนาคม";break;}
case "04l":{$temp_month="เมษายน";break;}
case "05":{$temp_month="พฤษภาคม";break;}
case "06":{$temp_month="มิถุนายน";break;}
case "07":{$temp_month="กรกฎาคม";break;}
case "08":{$temp_month="สิงหาคม";break;}
case "09":{$temp_month="กันยายน";break;}
case "10":{$temp_month="ตุลาคม";break;}
case "11":{$temp_month="พฤษจิกายน";break;}
case "12":{$temp_month="ธันวาคม";break;}
}
$ed = substr($txtArray[$i][7],8,2)." ".$temp_month;
if($dd>1)
{
$trainning_time = "ในวันที่ ( ".$sd." ถึง ".$ed." )";
}
else
{
$trainning_time = "ในวันที่ ( ".$sd." )";
}
$sql ="SELECT COUNT(*) FROM project1.tb_reserving WHERE (Course_No='$Course_No') AND (Training_Date='$chk') AND ( activity_id='$cid')";//นับจำนวนว่ามีคนจอง course นั้นกี่คนแล้วโดยดูจาก วันอบรมและ course_no
// $sql ="SELECT COUNT(*) FROM training.tb_reserving WHERE ID='$cid'";
$result = mysql_query($sql)or die ("Error Query [".$sql."]");
while($count = mysql_fetch_array($result))
{
$num = $count['COUNT(*)'];//นับจำนวนคนที่จองไว้แล้ว
if($num>=$Number_Of_Trainee)
{
$txt_list[$a]=" <font size=2> วิชา $Course_No (เต็ม)</font></br>";
}
else
{
$txt_list[$a] ="<a href='detail.php?No=$Course_No&Training_Date=$chk&Num=$num&Course_ID=$cid' target='_blank' title='$Course_name' style='background-color:#3399FF'\" ><font size=2>วิชา $Course_No(อบรม $dd วัน) Click !!!</font></a></br>"; // ทำ link
// $txt_link="<a href='detail.php?No=$Course_No&Training_Date=$chk&Num=$num'&Course_ID=$cid' target='_blank'>$txt <br> <font size=2> $Course_name (Click!) </font></a>";
}
}
if($txtArray[$i][1]<date('Y-m-d'))
{
$txt_list[$a]="<font size=2> วิชา $Course_No (อบรมไปแล้ว)</font></br>";
}
$a++;
}
}
for ($z=0;$z<=$a;$z++)
{
$txt_link .=$txt_list[$z];
$txt_list[$z] ="";
}
if(date('j')==$day)
{
if(date('n')==$month)
{
echo "<td align='right' valign='top' background='IMG/day/number_b_2.gif' >$txt_link</td>"; // ทำ BG เปลี่ยนสีบอกวันปัจจุบัน
}
else
{
echo "<td align='right' valign='top' background='IMG/day/number_b_1.gif' >$txt_link</td>";
}
}
else
{
echo "<td align='right' valign='top' background='IMG/day/number_b_1.gif'>$txt_link</td>";
}
$txt_link ="";
if($weekday==7 and $day!=$last_days)
{
echo '</tr><tr height="100">';
$weekday=0;
}
$day++;
$weekday++;
}
while($weekday<=7)
{
echo "<td background='IMG/day/number_b_1.gif' ></td>";
$weekday++;
}
?>
</tr>
</table>
</body>
</html>
ขอคำแนะนำด้วยครับ
Tag : PHP
|
ประวัติการแก้ไข 2012-11-16 03:19:08
|
|
|
|
|
Date :
2012-11-16 03:14:20 |
By :
heavoodoo |
View :
1084 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูพวกค่า $_GET ด้วยครับ ไม่รู้ว่าเกี่ยวหรือเปล่าครับ
|
|
|
|
|
Date :
2012-11-16 09:10:54 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้วครับ ไม่ได้ผลครับ
|
|
|
|
|
Date :
2012-11-16 20:54:45 |
By :
heavoodoo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อาจจะใช้ function นี้ไปใช้หรือเอาไปดัดแปลงก็ได้ครับ
<?php
function nextMonthYear($m,$y){
if ($m == 12){$m = 1;$y++;}else{$m++;}
return compact('m','y');
}
function prevMonthYear($m,$y){
if ($m == 1){$m = 12;$y--;}else{$m--;}
return compact('m','y');
}
$next = nextMonthYear(12,2012);
echo $next['m'],',',$next['y'];
?>
ดูเพิ่มเติมที่ิกระทู้นี้ครับ
https://www.thaicreate.com/php/forum/033267.html
|
|
|
|
|
Date :
2012-11-16 23:02:10 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ ลองดูแล้ว เหมือนมีปัญหาที่ตัวแปรไม่ตรงกัน ครับยังงัยเดี๋ยวลองดูเรื่อยๆครับ
|
|
|
|
|
Date :
2012-11-17 02:16:07 |
By :
heavoodoo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้ได้แล้วครับ ขอบคุณทุกคนมากครับ
|
|
|
|
|
Date :
2012-11-17 04:55:47 |
By :
heavoodoo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตกลงเป็นเพราะอะไรครับ
|
|
|
|
|
Date :
2012-11-18 08:01:40 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เป็นเพราะโค๊ดในส่วนของปีนั้นการกำหนดค่าตัวแปรยังสับสนพอสมควรครับ ผมเลยแก้ปัญหาโดยการกำหนดค่าให้เดือนสะ
Code (PHP)
<?
$M=$_GET['M']; // month
$Y=$_GET['Y']; // year
//$out =$;
if($M==null && $Y==null)
{
$month=date('m');
$year=date('Y');
}
else
{
if($M<1)
{
$M=12;
}
if($M>12)
{
$M=1;
}
$month=$M;
$year=$Y;
}
$y=$year+543;
$day_now=date('d');
$mkdate=mktime(0,0,0,$month,1,$year);
$full_month=date('F',$mkdate);
$weekday=date('w',$mkdate);
$last_days=date('t',$mkdate);
$day=1;
$x=0;
$i=0;
$txt="";
$txt_link="";
$mt="";
switch ($full_month) //แปลงเดือนเป็นชื่อ
{
case "January":{$mt="มกราคม"; $op="0"; $opp="1";break;}
case "February":{$mt="กุมภาพันธ์";$op="0";break;}
case "March":{$mt="มีนาคม";$op="0";break;}
case "April":{$mt="เมษายน";$op="0";break;}
case "May":{$mt="พฤษภาคม";$op="0";break;}
case "June":{$mt="มิถุนายน";$op="0";break;}
case "July":{$mt="กรกฎาคม";$op="0";break;}
case "August":{$mt="สิงหาคม";$op="0";break;}
case "September":{$mt="กันยายน";$op="0";break;}
case "October":{$mt="ตุลาคม";$op="0";break;}
case "November":{$mt="พฤษจิกายน";$op="0";break;}
case "December":{$mt="ธันวาคม";$op="1";break;}
}
นี่ส่วนของการเรียกใช้ครับ
Code (PHP)
<table cellpadding="0" cellspacing="0" border="1" style="border:thin; border-style:none;" align="center">
<tr bgcolor="#3399FF" valign="middle">
<td colspan="1" height="40" align="center" valign="middle" style="border-right:none;"><a href="calendar.php?M=<?= $month-1 ?>&Y=<?= $year-$opp ?>" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('LB','','IMG/L_arrorw_2.gif',1)"><img src="IMG/L_arrorw.gif" alt="เดือนก่อน" name="LB" width="25" height="25" border="0" id="LB" /><font size="2" >เดือนที่แล้ว</font></a></td>
<td colspan="5" height="40" align="center" style="border-left:none; border-right:none;"><center><b><? echo "$mt $y"; ?></b></center></td>
<td colspan="1" height="40" align="center" valign="middle" style="border-left:none;"><a href="calendar.php?M=<?= $month+1 ?>&Y=<?= $year+$op ?>" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('RB','','IMG/R_arrorw_2.gif',1)"><font size="2">เดือนถัดไป</font><img src="IMG/R_arrorw.gif" alt="เดือนถัดไป" name="RB" width="25" height="25" border="0" id="RB" /></a></td>
นี่ส่วนของการส่งค่าครับ
|
|
|
|
|
Date :
2012-11-18 23:45:50 |
By :
heavoodoo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|