พี่หนุ่ม และพี่ๆทุกคนครับ พอดีผมไปเจอโค้ดจากเวป http://cakephp.jitwitya.com/post/php-activity-calend
ผมอยากให้มันแสดงปฏิธิน ณ เดือนปัจจุบัน และสามารถ กดเดือนย้อนหลัง และเดือนถัดไปได้เรื่อยๆ
และวันที่เมื่อมีข้อมูล ตรงกับวันที่มีข้อมูลก็จะสามารถกดคลิกได้ ไม่ทราบพอจะมีแนว หรือวิธีมั้ยครับ พอดีผมไม่ค่อยเข้าโค้ดอ่ะครับ
Code (PHP)
<?php
function echoDate($y,$m,$d,$acts){
$ymd = sprintf("%04d-%02d-%02d",$y,$m,$d);
echo array_key_exists($ymd,$acts)
?'<a href="act.php?date='.$ymd.'" onclick="alert(\''.$acts[$ymd].'\');return false;">'.$d.'</a>'
:$d;
}
$y = empty($_GET['year'])?date('Y'):(int)$_GET['year'];
//สมมุติว่า $acts มาจาก database
$acts = array(
'2009-08-12'=>'activity1',
'2009-12-05'=>'activity2',
);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>calendar of year <?php echo $y;?></title>
<style type="text/css">
.w-s {color:red;}
.w-m {color:yellow;}
.w-tu {color:pink;}
.w-w {color:green;}
.w-th {color:orange;}
.w-f {color:blue;}
.w-st {color:violet;}
</style>
</head>
<body>
<h1 align="center">calendar of year <?php echo $y;?></h1>
<table cellpadding="10" align="center">
<?php
for($m=1;$m<=12;$m++):
$num = cal_days_in_month(CAL_GREGORIAN, $m, $y);
$fd = date('w',mktime(1, 1, 1, $m, 1, $y));
$d = 0;
?>
<?php if ($m%4 == 1):?>
<tr valign="top">
<?php endif;?>
<td>
<table border="1">
<caption><?php echo $m;?></caption>
<!-- first week -->
<tr><td class="w-s">s</td><td class="w-m">m</td><td class="w-tu">t</td>
<td class="w-w">w</td><td class="w-th">t</td><td class="w-f">f</td><td class="w-st">s</td>
<tr>
<?php if ($fd>0):?>
<td colspan="<?php echo $fd;?>"> </td>
<?php endif;?>
<?php while($fd + $d++ < 7): ?>
<td><?php echoDate($y,$m,$d,$acts);?></td>
<?php endwhile; $d--; ?>
</tr>
<!-- second to fifth week -->
<?php for($x=0;$x<31;$x++): $xx=$x%7; ?>
<?php if ($xx==0):?><tr><?php endif;?>
<td><?php $d++; echoDate($y,$m,$d,$acts);?></td>
<?php if ($xx==6 || $d==$num):?>
<?php if ($xx!=6):?>
<td colspan="<?php echo 6-$xx;?>"> </td>
<?php endif;?>
</tr>
<?php if ($d==$num){break;} ?>
<?php endif;?>
<?php endfor;?>
</table>
</td>
<?php if ($m%4 == 0):?>
</tr>
<?php endif;?>
<?php endfor;?>
</table>
<div align="center">
<?php foreach(range(2000,2021) as $year):?>
<a href="?year=<?php echo $year;?>"><?php echo $year;?></a>
<?php endforeach;?>
</div>
</body>
</html>
Tag : - - - -
Date :
2009-10-19 21:24:46
By :
oasiis
View :
1864
Reply :
73
ลบสองบรรทัดนี้ออกครับ บ.34 กับ บ.75
for($m=1;$m<=12;$m++):
<?php endfor;?>
แทน
$y = empty($_GET['year'])?date('Y'):(int)$_GET['year'];
ด้วย
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');
}
$m = empty($_GET['m']) ? '9' : (int)$_GET['m'];
$y = empty($_GET['y']) ? '2009' : (int)$_GET['y'];
จากนั้นแทนที่
<?php foreach(range(2000,2021) as $year):?>
<a href="?year=<?php echo $year;?>"><?php echo $year;?></a>
<?php endforeach;?>
ด้วย
<?php
$prev = prevMonthYear($m,$y);
$next = nextMonthYear($m,$y);
?>
<a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>">Previous Month</a> |
<?php echo $m,'/',$y; ?> |
<a href="?y=<?php echo $next['y'];?>&m=<?php echo $next['m'];?>">Next Month</a>
ตามที่ผมคิดไว้แค่นี้ก็ใช้ได้ละครับ
แต่ถ้ามี error เดี๋ยวดูอีกครับครับ :)
Date :
2009-10-19 21:54:21
By :
num
Date :
2009-10-19 23:29:30
By :
NanoThoro
ขอบคุณมากครับ
Date :
2009-10-20 13:32:23
By :
oasiis
แล้วถ้า select มาละครับ ผมลองดูแล้วไม่รู้จะดัดแปลง ยังไง
Code (PHP)
$sqlplan = "SELECT * FROM tbplan WHERE ceo = '1'";
$obj = mysql_query($sqlplan);
While($objResult = mysql_fetch_array($obj))
if(!$objResult)
{
//echo "$sqlplan";
echo "ไม่พบข้อมูล";
}
else
{
echo "$sqlplan";
$id_plan=$objResult["id_plan"];
$name=$objResult["name_plan"];
$date=$objResult["date_plan"];
$time=$objResult["time_plan"];
$ceo=$objResult["ceo"];
}
$acts = array(
'2009-08-12'=>'activity1',
'2009-12-05'=>'activity2',
);
Date :
2009-10-20 14:18:08
By :
oasiis
$sqlplan = "SELECT * FROM tbplan WHERE ceo = '1'";
$obj = mysql_query($sqlplan);
$acts = array();
While($objResult = mysql_fetch_assoc($obj))
{
echo "$sqlplan";
$id_plan=$objResult["id_plan"];
$name=$objResult["name_plan"];
$date=$objResult["date_plan"];
$time=$objResult["time_plan"];
$ceo=$objResult["ceo"];
$acts[$date] = empty($acts[$date]) ? $name : $acts[$date].', '.$name;
}
var_dump($acts); //ตรวจสอบค่าในตัวแปร
Date :
2009-10-20 14:25:31
By :
num
แล้วถ้าผมมีตารางที่แสดงรายละเอียด เป็นรายเดือน ณ เดือนนั้น และเมื่อคลิกที่ปฏิทิน ตารางก็จะแสดงข้อมูลของวันที่ ที่เราคลิกอ่ะครับ สามารถทำได้มั้ยครับ
Code (PHP)
<?
$datenow=date('Y-m');
$sqlplan1 = "SELECT * FROM tbplan WHERE ceo = '1' AND date_plan='date('Y-m')'ORDER BY date_plan ASC";
$obj1 = mysql_query($sqlplan1);
While($objResult1 = mysql_fetch_array($obj1))
if(!$objResult1)
{
//echo "$sqlplan";
echo "ไม่พบข้อมูล";
}
else
{
//echo "$sqlplan";
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$date=displaydate($date);
//$acts[$date] = empty($acts[$date]) ? $name : $acts[$date].', '.$name;
?>
<tr>
<td width="200" align="center"><?=$date;?></td>
<td width="100" align="center"><?=$time;?></td>
<td width="600"><?=$name?></td>
</tr><?}?>
Date :
2009-10-20 15:13:21
By :
oasiis
แล้วถ้าผมมีตารางที่แสดงรายละเอียด เป็นรายเดือน ณ เดือนนั้น และเมื่อคลิกที่ปฏิทิน ตารางก็จะแสดงข้อมูลของวันที่ ที่เราคลิกอ่ะครับ สามารถทำได้มั้ยครับ
Code (PHP)
<?
$datenow=date('Y-m');
$sqlplan1 = "SELECT * FROM tbplan WHERE ceo = '1' AND date_plan='date('Y-m')'ORDER BY date_plan ASC";
$obj1 = mysql_query($sqlplan1);
While($objResult1 = mysql_fetch_array($obj1))
if(!$objResult1)
{
//echo "$sqlplan";
echo "ไม่พบข้อมูล";
}
else
{
//echo "$sqlplan";
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$date=displaydate($date);
//$acts[$date] = empty($acts[$date]) ? $name : $acts[$date].', '.$name;
?>
<tr>
<td width="200" align="center"><?=$date;?></td>
<td width="100" align="center"><?=$time;?></td>
<td width="600"><?=$name?></td>
</tr><?}?>
Date :
2009-10-20 15:57:28
By :
oasiis
งงครับ
Date :
2009-10-20 16:16:03
By :
num
จุ๊ จุ๊ อย่าทำพี่เค้า งง สิค่ะ ยิ่งกำลังเอ๋อ เพราะสารอาหารม่ายพออยู่ แป๋วววว
Date :
2009-10-20 16:50:39
By :
gummezaka
$adate = empty($_GET['adate']) ? '' : (int)$_GET['adate'];
เพิ่มตัวแปรต่อท้าย
$m = empty($_GET['m']) ? '9' : (int)$_GET['m'];
$y = empty($_GET['y']) ? '2009' : (int)$_GET['y'];
ตรงส่วน
echo array_key_exists($ymd,$acts)
?'<a href="act.php?date='.$ymd.'" onclick="alert(\''.$acts[$ymd].'\');return false;">'.$d.'</a>'
:$d;
เปลี่ยนเป็น
echo array_key_exists($ymd,$acts)
?"<a href=\"?adate={$ymd}&m={$m}&y=$y\">{$d}</a>"
:$d;
และ
ด้านล่างสุด (ก่อน </body></html>)
ก็เพิ่มคำสั่งประมาณนี้ครับ
<?php
if (!empty($adate)) {
$sqlplan1 = "SELECT * FROM tbplan WHERE date_plan='$adate' ORDER BY date_plan ASC";
//แสดงตาราง
}
?>
Date :
2009-10-20 17:05:26
By :
num
ไม่ได้อ่ะครับ มันไม่โชว์เลยครับ
Code (PHP)
<?php
include "conn.inc.php";
function echoDate($y,$m,$d,$acts){
$ymd = sprintf("%04d-%02d-%02d",$y,$m,$d);
echo array_key_exists($ymd,$acts)
?"<a href=\"?adate={$ymd}&m={$m}&y=$y\">{$d}</a>"
:$d;
}
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');
}
function displaydate ($x) {
$date_m=array ("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤษจิกายน","ธันวาคม");
$date_array=explode("-",$x);
$y=$date_array[0]+543;
$m=$date_array[1]-1;
$d=$date_array[2];
$m=$date_m[$m];
$displaydate="$d $m $y";
return $displaydate;
}
$m_now=date('m');
$y_now=date('Y');
$m = empty($_GET['m']) ? $m_now : (int)$_GET['m'];
$y = empty($_GET['y']) ? $y_now : (int)$_GET['y'];
$adate = empty($_GET['adate']) ? '' : (int)$_GET['adate'];
//สมมุติว่า $acts มาจาก database
$sqlplan = "SELECT * FROM tbplan WHERE ceo = '1'";
$obj = mysql_query($sqlplan);
While($objResult = mysql_fetch_array($obj))
if(!$objResult)
{
//echo "$sqlplan";
echo "ไม่พบข้อมูล";
}
else
{
//echo "$sqlplan";
$id_plan=$objResult["id_plan"];
$name=$objResult["name_plan"];
$date=$objResult["date_plan"];
$time=$objResult["time_plan"];
$ceo=$objResult["ceo"];
$acts[$date] = empty($acts[$date]) ? $name : $acts[$date].', '.$name;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>calendar of year <?php echo $y+543;?></title>
<style type="text/css">
.w-s {color:red;}
.w-m {color:yellow;}
.w-tu {color:pink;}
.w-w {color:green;}
.w-th {color:orange;}
.w-f {color:blue;}
.w-st {color:violet;}
.style2 {font-size: 18px}
a:link {
text-decoration: none;
color: #663399;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: underline;
color: #996600;
}
a:active {
text-decoration: none;
color: #CC9900;
}
a {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style13 {font-size: 14px; color: #FFFFFF; }
</style>
</head>
<body>
<?
$months = array(1=>'มกราคม','กุมภาพันธ์','มีนาคม',
'เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม',
'กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม');
?>
<!-- <h1 align="center">calendar of year <?php echo $y+543;?></h1> -->
<table cellpadding="10" align="center">
<?php
$num = cal_days_in_month(CAL_GREGORIAN, $m, $y);
$fd = date('w',mktime(1, 1, 1, $m, 1, $y));
$d = 0;
?>
<?php if ($m%4 == 1):?>
<tr valign="top">
<?php endif;?>
<th>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#666666">
<caption>
<span class="style2">เดือน<?php echo $months[(int)$m];?></span><br>
<br>
</caption>
<!-- first week -->
<tr>
<td width="60" height="50" align="center" valign="middle" class="w-s">อาทิตย์</td>
<td width="60" height="50" align="center" valign="middle" class="w-m">จันทร์</td>
<td width="60" height="50" align="center" valign="middle" class="w-tu">อังคาร</td>
<td width="60" height="50" align="center" valign="middle" class="w-w">พุธ</td>
<td width="60" height="50" align="center" valign="middle" class="w-th">พฤหัสบดี</td>
<td width="60" height="50" align="center" valign="middle" class="w-f">ศุกร์</td>
<td width="60" height="50" align="center" valign="middle" class="w-st">เสาร์</td>
<tr>
<?php if ($fd>0):?>
<td height="50" colspan="<?php echo $fd;?>" align="center" valign="middle"> </td>
<?php endif;?>
<?php while($fd + $d++ < 7): ?>
<td height="50" align="center" valign="middle"><?php echoDate($y,$m,$d,$acts);?></td>
<?php endwhile; $d--; ?>
</tr>
<!-- second to fifth week -->
<?php for($x=0;$x<31;$x++): $xx=$x%7; ?>
<?php if ($xx==0):?><tr><?php endif;?>
<td height="50" align="center" valign="middle"><?php $d++; echoDate($y,$m,$d,$acts);?></td>
<?php if ($xx==6 || $d==$num):?>
<?php if ($xx!=6):?>
<td height="50" colspan="<?php echo 6-$xx;?>" align="center" valign="middle"> </td>
<?php endif;?>
</tr>
<?php if ($d==$num){break;} ?>
<?php endif;?>
<?php endfor;?>
</table> </th>
<?php if ($m%4 == 0):?>
</tr>
<?php endif;?>
</table>
<div align="center">
<?php
$prev = prevMonthYear($m,$y);
$next = nextMonthYear($m,$y);
?>
<a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>"><<< ย้อนหลัง</a><a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>"></a> |
<?php echo $months[(int)$m],' ',$y+543; ?> |
<a href="?y=<?php echo $next['y'];?>&m=<?php echo $next['m'];?>">ต่อไป >>></a> </div>
<BR><BR>
<table border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<th width="200" align="center" valign="middle" bgcolor="#999999"><span class="style13">วันที่</span></th>
<th colspan="2" align="center" valign="middle" bgcolor="#999999"><span class="style13">ภารกิจ</span></th>
</tr>
<?
$datenow=date('Y-m');
$sqlplan1 = "SELECT * FROM tbplan WHERE date_plan='$adate' AND ceo = '1' ORDER BY date_plan ASC";
//$sqlplan1 = "SELECT * FROM tbplan WHERE ceo = '1' ORDER BY date_plan ASC";
$obj1 = mysql_query($sqlplan1);
While($objResult1 = mysql_fetch_array($obj1))
if(!$objResult1)
{
//echo "$sqlplan";
echo "ไม่พบข้อมูล";
}
else
{
//echo "$sqlplan";
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$ddate=displaydate($date);
?>
<tr>
<?php if ($date>0):?>
<td " width="200" align="center" valign="middle"><?=$ddate;?></td>
<?php endif;?>
<td width="100" align="center"><?=$time;?></td>
<td width="600" align="left"> <?=$name?></td>
</tr><?}?>
</table>
</body>
</html>
Date :
2009-10-20 17:23:57
By :
oasiis
โปรแกรมก็เกือบสมบูรณ์แล้วนะครับแต่ไม่รู้เพราะอะไร ขอ backup ตารางที่เกี่ยวข้องด้วยครับ
จะได้ทดสอบได้เร็วๆ
Date :
2009-10-20 17:29:04
By :
num
ไม่รู้หมายถึงนี้รึป่าวน่ะครับ
Code
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Oct 20, 2009 at 06:36 PM
-- Server version: 5.0.51
-- PHP Version: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `dbschedules`
--
-- --------------------------------------------------------
--
-- Table structure for table `tbplan`
--
CREATE TABLE `tbplan` (
`id_plan` int(11) NOT NULL,
`name_plan` text NOT NULL,
`date_plan` date NOT NULL,
`time_plan` time NOT NULL,
`ceo` int(11) NOT NULL,
PRIMARY KEY (`id_plan`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620;
--
-- Dumping data for table `tbplan`
--
INSERT INTO `tbplan` VALUES (1, 'ghsdfghdf', '2009-10-23', '00:20:50', 1);
INSERT INTO `tbplan` VALUES (2, 'gfhdf', '2009-10-01', '07:23:00', 1);
INSERT INTO `tbplan` VALUES (3, 'dfghdsfh', '2009-10-20', '09:00:00', 3);
INSERT INTO `tbplan` VALUES (4, 'gjghj', '2009-10-29', '21:21:00', 2);
INSERT INTO `tbplan` VALUES (5, 'กินข้าวววววว', '2009-10-17', '10:09:00', 1);
INSERT INTO `tbplan` VALUES (6, 'hxfghfdhfgh', '2009-10-01', '05:05:00', 1);
Date :
2009-10-20 17:35:36
By :
oasiis
ใช่ครับ คุณ oasiis หลับไปตื่นนึงก็เส็ดพอดี รอสักครู่ครับ
Date :
2009-10-20 17:40:51
By :
num
จุดหลักก็ตรงผมพลาดไปแปลงเป็นตัวเลขครับ
$adate = empty($_GET['adate']) ? '' : (int)$_GET['adate'];
แก้เป็น
$adate = empty($_GET['adate']) ? '' : mysql_real_escape_string($_GET['adate']); ครับ
โค้ดนี้แก้แล้วครับ
<?php
mysql_connect('localhost','root','12345');
mysql_select_db('ddd');
mysql_query('SET NAMES TIS620');
function echoDate($y,$m,$d,$acts){
$ymd = sprintf("%04d-%02d-%02d",$y,$m,$d);
echo array_key_exists($ymd,$acts)
?"<a href=\"?adate={$ymd}&m={$m}&y=$y\">{$d}</a>"
:$d;
}
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');
}
function displaydate ($x) {
$date_m=array ("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤษจิกายน","ธันวาคม");
$date_array=explode("-",$x);
$y=$date_array[0]+543;
$m=$date_array[1]-1;
$d=$date_array[2];
$m=$date_m[$m];
$displaydate="$d $m $y";
return $displaydate;
}
$m_now=date('m');
$y_now=date('Y');
$m = empty($_GET['m']) ? $m_now : (int)$_GET['m'];
$y = empty($_GET['y']) ? $y_now : (int)$_GET['y'];
$adate = empty($_GET['adate']) ? '' : mysql_real_escape_string($_GET['adate']);
//สมมุติว่า $acts มาจาก database
$sqlplan = "SELECT * FROM tbplan WHERE ceo = '1'";
$obj = mysql_query($sqlplan) or die(mysql_error());
$acts = array();
While($objResult = mysql_fetch_assoc($obj)){
$name = $objResult['name_plan'];
$date = $objResult['date_plan'];
$acts[$date] = empty($acts[$date]) ? $name : $acts[$date].', '.$name;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>calendar of year <?php echo $y+543;?></title>
<style type="text/css">
.w-s {color:red;}
.w-m {color:yellow;}
.w-tu {color:pink;}
.w-w {color:green;}
.w-th {color:orange;}
.w-f {color:blue;}
.w-st {color:violet;}
.style2 {font-size: 18px}
a:link {
text-decoration: none;
color: #663399;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: underline;
color: #996600;
}
a:active {
text-decoration: none;
color: #CC9900;
}
a {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style13 {font-size: 14px; color: #FFFFFF; }
</style>
</head>
<body>
<?
$months = array(1=>'มกราคม','กุมภาพันธ์','มีนาคม',
'เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม',
'กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม');
?>
<!-- <h1 align="center">calendar of year <?php echo $y+543;?></h1> -->
<table cellpadding="10" align="center">
<?php
$num = cal_days_in_month(CAL_GREGORIAN, $m, $y);
$fd = date('w',mktime(1, 1, 1, $m, 1, $y));
$d = 0;
?>
<?php if ($m%4 == 1):?>
<tr valign="top">
<?php endif;?>
<th>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#666666">
<caption>
<span class="style2">เดือน<?php echo $months[(int)$m];?></span><br>
<br>
</caption>
<!-- first week -->
<tr>
<td width="60" height="50" align="center" valign="middle" class="w-s">อาทิตย์</td>
<td width="60" height="50" align="center" valign="middle" class="w-m">จันทร์</td>
<td width="60" height="50" align="center" valign="middle" class="w-tu">อังคาร</td>
<td width="60" height="50" align="center" valign="middle" class="w-w">พุธ</td>
<td width="60" height="50" align="center" valign="middle" class="w-th">พฤหัสบดี</td>
<td width="60" height="50" align="center" valign="middle" class="w-f">ศุกร์</td>
<td width="60" height="50" align="center" valign="middle" class="w-st">เสาร์</td>
<tr>
<?php if ($fd>0):?>
<td height="50" colspan="<?php echo $fd;?>" align="center" valign="middle"> </td>
<?php endif;?>
<?php while($fd + $d++ < 7): ?>
<td height="50" align="center" valign="middle"><?php echoDate($y,$m,$d,$acts);?></td>
<?php endwhile; $d--; ?>
</tr>
<!-- second to fifth week -->
<?php for($x=0;$x<31;$x++): $xx=$x%7; ?>
<?php if ($xx==0):?><tr><?php endif;?>
<td height="50" align="center" valign="middle"><?php $d++; echoDate($y,$m,$d,$acts);?></td>
<?php if ($xx==6 || $d==$num):?>
<?php if ($xx!=6):?>
<td height="50" colspan="<?php echo 6-$xx;?>" align="center" valign="middle"> </td>
<?php endif;?>
</tr>
<?php if ($d==$num){break;} ?>
<?php endif;?>
<?php endfor;?>
</table> </th>
<?php if ($m%4 == 0):?>
</tr>
<?php endif;?>
</table>
<div align="center">
<?php
$prev = prevMonthYear($m,$y);
$next = nextMonthYear($m,$y);
?>
<a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>"><<< ย้อนหลัง</a><a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>"></a> |
<?php echo $months[(int)$m],' ',$y+543; ?> |
<a href="?y=<?php echo $next['y'];?>&m=<?php echo $next['m'];?>">ต่อไป >>></a> </div>
<BR><BR>
<table border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<th width="200" align="center" valign="middle" bgcolor="#999999"><span class="style13">วันที่</span></th>
<th colspan="2" align="center" valign="middle" bgcolor="#999999"><span class="style13">ภารกิจ</span></th>
</tr>
<?
$datenow=date('Y-m');
$sqlplan1 = "SELECT * FROM tbplan WHERE date_plan='$adate' ORDER BY date_plan ASC";
//$sqlplan1 = "SELECT * FROM tbplan WHERE ceo = '1' ORDER BY date_plan ASC";
$obj1 = mysql_query($sqlplan1) or die(mysql_error());
While($objResult1 = mysql_fetch_array($obj1)){
//echo "$sqlplan";
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$ddate=displaydate($date);
?>
<tr>
<td width="200" align="center" valign="middle"><?=$ddate;?></td>
<td width="100" align="center"><?=$time;?></td>
<td width="600" align="left"> <?=$name?></td>
</tr><?}?>
</table>
</body>
</html>
Quote: เวปของพี่ใช่มั้ยครับ http://cakephp.jitwitya.com/
ใช่ครับ :)
Date :
2009-10-20 18:05:22
By :
num
ตอนแสดงเพจนี้คั้งแรก ให้แสดงของวันปัจจุบันก่อนทำไงครับ?
Date :
2009-10-20 18:17:48
By :
oasiis
$adate = empty($_GET['adate']) ? date('Y-m-d') : mysql_real_escape_string($_GET['adate']);
ครับ
Date :
2009-10-20 18:19:57
By :
num
โขว์เวลา แบบไม่มีวินาที ทำยังไงครับ แบบนี้หรือป่าวครับ
DATE_FORMAT("%H.%i",CREATE_DATE)
Date :
2009-10-20 18:50:58
By :
oasiis
SELECT DATE_FORMAT('2009-10-10 11:12:13','%H:%i');
SELECT DATE_FORMAT(CREATE_DATETIME,'%H:%i');
สลับที่นะครับ
Date :
2009-10-20 19:57:20
By :
num
พอดีแยกฟิลวันกับเวลาออกจากกันเลยใช้ยากหน่อยครับ
Code (PHP)
<?
//$sqlplan1 = "SELECT * FROM tbplan WHERE date_plan='$adate' ORDER BY time_plan ASC";
//$sqlplan1 = "SELECT * FROM tbplan WHERE ceo = '1' ORDER BY date_plan ASC";
$sqlplan1 = "SELECT *, DATE_FORMAT(CONCAT(CURRENT_DATE,' ',time_plan),'%H:%i') AS h_and_i FROM tbplan";
$obj1 = mysql_query($sqlplan1);
While($objResult1 = mysql_fetch_array($obj1))
if(!$objResult1)
{
//echo "$sqlplan";
echo "ไม่พบข้อมูล";
}
else
{
//echo "$sqlplan";
$h_and_i = $objResult1["h_and_i"];
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$ddate=displaydate($date);
?>
Date :
2009-10-20 21:25:04
By :
num
ใช้ตัวแปร $h_and_i แทนครับ
Date :
2009-10-20 21:52:22
By :
num
แก้ตัวแปรที่ใช้แสดงผลน่ะครับ
<td width="100" align="center"><?=$time;?></td>
<td width="100" align="center"><?php echo $h_and_i;?></td>
Date :
2009-10-20 22:13:19
By :
num
ยังไม่ได้ครับ
คราวนี้ไม่ออกสักตัวเลขเลยครับ
Date :
2009-10-20 22:22:42
By :
oasiis
มีค่า $h_and_i หรือเปล่าครับ
<?
$sqlplan1 = "SELECT *, DATE_FORMAT(CONCAT(CURRENT_DATE,' ',time_plan),'%H:%i') AS h_and_i FROM tbplan";
$obj1 = mysql_query($sqlplan1) or die(mysql_error());
While($objResult1 = mysql_fetch_array($obj1))
if(!$objResult1)
{
//echo "$sqlplan";
echo "ไม่พบข้อมูล";
}
else
{
//echo "$sqlplan";
$h_and_i = $objResult1["h_and_i"];
var_dump($h_and_i); //ตรวจสอบค่า $h_and_i
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$ddate=displaydate($date);
?>
Date :
2009-10-20 22:30:06
By :
num
ถ้ายังไม่ได้ เปลี่ยนเป็น function ธรรมดาๆ แบบนี้ดีกว่าครับ ถ้าไม่จำเป็นอย่าใช้ function ที่ query ครับ
มันจะทำให้โค้ดอ่านยากขึ้นด้วยครับ
echo substr('11:12:13',0,-3);
Date :
2009-10-20 22:48:45
By :
num
แล้วการหาค่าใน file ว่ามีค่าที่เราต้องการว่ามีกี่ rows
เช่น ต้องการทราบว่า date_plan='$adate' ว่ามีกี่ rows
อยากว่าต้องทำยังไงครับ
Date :
2009-10-20 23:16:24
By :
oasiis
แล้วการหาค่าใน file ว่ามีค่าที่เราต้องการว่ามีกี่ rows
เช่น ต้องการทราบว่า date_plan='$adate' ว่ามีกี่ rows
อยากว่าต้องทำยังไงครับ
Date :
2009-10-20 23:17:53
By :
oasiis
$r = mysql_query("SELECT COUNT(*) as cnt FROM tb WHERE cname='$adate'");
echo mysql_result($r,0,'cnt');
Date :
2009-10-20 23:25:34
By :
num
ขอบคุณมากครับ
อีกเรื่องนึ่งครับ ผมอยาก merge ตารางอ่ะครับ
Code (PHP)
$sqlplan1 = "SELECT *, DATE_FORMAT(CONCAT(CURRENT_DATE,' ',time_plan),'%H.%i') AS h_and_i FROM tbplan WHERE date_plan='$adate' ORDER BY time_plan ASC";
//$sqlplan1 = "SELECT * FROM tbplan WHERE date_plan='$adate' ORDER BY time_plan ASC";
//$sqlplan1 = "SELECT * FROM tbplan WHERE ceo = '1' ORDER BY date_plan ASC";
$r = mysql_query("SELECT COUNT(time_plan) as cnt FROM tbplan WHERE date_plan='$adate'");
echo mysql_result($r,0,'cnt');
$tr=mysql_result($r,0,'cnt');
$obj1 = mysql_query($sqlplan1);
While($objResult1 = mysql_fetch_array($obj1))
if(!$objResult1)
{
echo "ไม่พบข้อมูล";
}
else
{
$h_and_i=$objResult1["h_and_i"];
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$ddate=displaydate($date);
?>
<tr>
<?php if ($tr>0):?>
<td rowspan="<?echo $tr;?>" width="200" align="center" valign="middle"><?=$ddate;?></td>
<?php endif;?>
<td width="100" align="center"><?php echo $h_and_i;?></td>
<td width="600" align="left"> <?=$name?></td>
</tr><?}?>
แต่มันออกมาเป็นแบบนี้อ่ะครับ
Date :
2009-10-21 00:03:05
By :
oasiis
<th colspan="2" align="center" valign="middle" bgcolor="#999999"><span class="style13">ภารกิจ</span></th>
<th colspan="3" align="center" valign="middle" bgcolor="#999999"><span class="style13">ภารกิจ</span></th>
หรือเปล่านะครับ
Date :
2009-10-21 08:39:48
By :
num
ป่าวครับ คือจะ merge ตรงวันที่ครับ
Date :
2009-10-21 11:35:07
By :
oasiis
ดูตรง <td rowspan="5"> </td> นะครับ
จะต้องเปลี่ยนเป็น
<td rowspan="<?php echo $cnt;?>"> </td>
ครับ
โดย $cnt ได้มาจาก query
$r = mysql_query("SELECT count(*) as cnt FROM tbplan WHERE date_plane='$adate' ");
$cnt = mysql_result($r,0,'cnt');
ส่วนตรง ceo ผมไม่รู้จักเน้อเลยไม่ได้เอามาเป็นเงื่อนไขลองเอาไปปรับดูครับ
<table width="100%" border="1">
<tr>
<td> </td>
<td colspan="2"> </td>
</tr>
<tr>
<td rowspan="5"> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
Date :
2009-10-21 12:56:13
By :
num
ผมลองทำเงื่อนไขว่า date_plane!=date('Y-m-d')
ให้มันขึ้นว่า "ไม่พบข้อมูล / ไม่มีภารกิจ" ตอนแสดงเพจนี้ครั้งแรกอ่ะ
ทำเท่าไรก็ไม่ได้สักทีครับ ไม่ทราบว่าต้องทำไง
เพราะว่าผมจะทำลิงค์มาเพจนี้ แล้วจะต้องแสดงข้อของวันที่ปัจจุบัน และสามารถเลือกดูข้อมูลจะตารางปฏิทินได้อ่ะครับ ผมติดตรงเงื่อนไขในการแสดงเพจครั้งแรกในวันที่ปัจจุบันอยู่อ่ะครับ
ยังไงช่วยผมอีกหน่อยได้มั้ยครับ?
Date :
2009-10-21 20:13:46
By :
oasiis
มีคำสั่งแสดงผลเวลาไม่พบรายการแล้วนี่ครับ
While($objResult1 = mysql_fetch_array($obj1))
if(!$objResult1)
{
echo "ไม่พบข้อมูล";
}
Date :
2009-10-21 20:45:02
By :
num
มันไม่แสดงอ่ะครับ
Date :
2009-10-21 21:59:52
By :
oasiis
อืมครับมาดูอีกที logic ไม่ถูกต้องครับเพราะเมื่อ $objResult1 เป็นค่า false มันจะไม่เข้า block while loop เลย
ดังนั้นก็จะไม่มีทางที่จะเข้า block if ได้ครับ จะมีแต่กรณีเข้า block else เท่านั้น
$obj1 = mysql_query($sqlplan1);
While($objResult1 = mysql_fetch_array($obj1))
ลบส่วนนี้ทิ้งไปได้เลยครับ
if(!$objResult1)
{
echo "ไม่พบข้อมูล";
}
else
ง่ายๆครับใช้คำสั่ง
if (mysql_num_rows($obj1) == 0){
echo 'ไม่พบข้อมูล';
}
Date :
2009-10-21 22:18:13
By :
num
ได้แล้วครับ ขอบคุณมากเลย
Date :
2009-10-21 23:26:28
By :
oasiis
ได้แล้วครับ ขอบคุณมากเลย
Date :
2009-10-21 23:28:33
By :
oasiis
พี่หนุ่มครับ ถ้าใช้หน้าในการรับค่า get มาเพื่อแสดงข้อมูลของบุคคล โดย get รหัสบุคคล ตรงบรรทัดที่ 40
แต่เมื่อคลิกที่ปฏิทินของวันที่ที่มีข้อมูลอยู่ ไม่ทราบว่าผิดตรงไหนครับตรงนี้รึป่าว? Code
echo array_key_exists($ymd,$acts)
?"<a href=\"?adate={$ymd}&m={$m}&y=$y\">{$d}</a>"
:$d;
Code (PHP)
<?php
mysql_connect('localhost','root','12345');
mysql_select_db('ddd');
mysql_query('SET NAMES TIS620');
function echoDate($y,$m,$d,$acts){
$ymd = sprintf("%04d-%02d-%02d",$y,$m,$d);
echo array_key_exists($ymd,$acts)
?"<a href=\"?adate={$ymd}&m={$m}&y=$y\">{$d}</a>"
:$d;
}
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');
}
function displaydate ($x) {
$date_m=array ("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤษจิกายน","ธันวาคม");
$date_array=explode("-",$x);
$y=$date_array[0]+543;
$m=$date_array[1]-1;
$d=$date_array[2];
$m=$date_m[$m];
$displaydate="$d $m $y";
return $displaydate;
}
$m_now=date('m');
$y_now=date('Y');
$m = empty($_GET['m']) ? $m_now : (int)$_GET['m'];
$y = empty($_GET['y']) ? $y_now : (int)$_GET['y'];
$adate = empty($_GET['adate']) ? date('Y-m-d') : mysql_real_escape_string($_GET['adate']);
//สมมุติว่า $acts มาจาก database
$G_id=$_GET[id_ceo];
$sqlplan = "SELECT * FROM tbplan WHERE ceo = '$G_id'";
$obj = mysql_query($sqlplan) or die(mysql_error());
$acts = array();
While($objResult = mysql_fetch_assoc($obj)){
$name = $objResult['name_plan'];
$date = $objResult['date_plan'];
$acts[$date] = empty($acts[$date]) ? $name : $acts[$date].', '.$name;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>calendar of year <?php echo $y+543;?></title>
<style type="text/css">
.w-s {color:red;}
.w-m {color:yellow;}
.w-tu {color:pink;}
.w-w {color:green;}
.w-th {color:orange;}
.w-f {color:blue;}
.w-st {color:violet;}
.style2 {font-size: 18px}
a:link {
text-decoration: none;
color: #663399;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: underline;
color: #996600;
}
a:active {
text-decoration: none;
color: #CC9900;
}
a {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style13 {font-size: 14px; color: #FFFFFF; }
</style>
</head>
<body>
<?
$months = array(1=>'มกราคม','กุมภาพันธ์','มีนาคม',
'เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม',
'กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม');
?>
<!-- <h1 align="center">calendar of year <?php echo $y+543;?></h1> -->
<table cellpadding="10" align="center">
<?php
$num = cal_days_in_month(CAL_GREGORIAN, $m, $y);
$fd = date('w',mktime(1, 1, 1, $m, 1, $y));
$d = 0;
?>
<?php if ($m%4 == 1):?>
<tr valign="top">
<?php endif;?>
<th>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#666666">
<caption>
<span class="style2">เดือน<?php echo $months[(int)$m];?></span><br>
<br>
</caption>
<!-- first week -->
<tr>
<td width="60" height="50" align="center" valign="middle" class="w-s">อาทิตย์</td>
<td width="60" height="50" align="center" valign="middle" class="w-m">จันทร์</td>
<td width="60" height="50" align="center" valign="middle" class="w-tu">อังคาร</td>
<td width="60" height="50" align="center" valign="middle" class="w-w">พุธ</td>
<td width="60" height="50" align="center" valign="middle" class="w-th">พฤหัสบดี</td>
<td width="60" height="50" align="center" valign="middle" class="w-f">ศุกร์</td>
<td width="60" height="50" align="center" valign="middle" class="w-st">เสาร์</td>
<tr>
<?php if ($fd>0):?>
<td height="50" colspan="<?php echo $fd;?>" align="center" valign="middle"> </td>
<?php endif;?>
<?php while($fd + $d++ < 7): ?>
<td height="50" align="center" valign="middle"><?php echoDate($y,$m,$d,$acts);?></td>
<?php endwhile; $d--; ?>
</tr>
<!-- second to fifth week -->
<?php for($x=0;$x<31;$x++): $xx=$x%7; ?>
<?php if ($xx==0):?><tr><?php endif;?>
<td height="50" align="center" valign="middle"><?php $d++; echoDate($y,$m,$d,$acts);?></td>
<?php if ($xx==6 || $d==$num):?>
<?php if ($xx!=6):?>
<td height="50" colspan="<?php echo 6-$xx;?>" align="center" valign="middle"> </td>
<?php endif;?>
</tr>
<?php if ($d==$num){break;} ?>
<?php endif;?>
<?php endfor;?>
</table> </th>
<?php if ($m%4 == 0):?>
</tr>
<?php endif;?>
</table>
<div align="center">
<?php
$prev = prevMonthYear($m,$y);
$next = nextMonthYear($m,$y);
?>
<a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>"><<< ย้อนหลัง</a><a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>"></a> |
<?php echo $months[(int)$m],' ',$y+543; ?> |
<a href="?y=<?php echo $next['y'];?>&m=<?php echo $next['m'];?>">ต่อไป >>></a> </div>
<BR><BR>
<table border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<th width="200" align="center" valign="middle" bgcolor="#999999"><span class="style13">วันที่</span></th>
<th colspan="2" align="center" valign="middle" bgcolor="#999999"><span class="style13">ภารกิจ</span></th>
</tr>
<?
$datenow=date('Y-m');
$sqlplan1 = "SELECT * FROM tbplan WHERE date_plan='$adate' ORDER BY date_plan ASC";
//$sqlplan1 = "SELECT * FROM tbplan WHERE ceo = '1' ORDER BY date_plan ASC";
$obj1 = mysql_query($sqlplan1) or die(mysql_error());
While($objResult1 = mysql_fetch_array($obj1)){
//echo "$sqlplan";
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$ddate=displaydate($date);
?>
<tr>
<td width="200" align="center" valign="middle"><?=$ddate;?></td>
<td width="100" align="center"><?=$time;?></td>
<td width="600" align="left"> <?=$name?></td>
</tr><?}?>
</table>
</body>
</html>
Date :
2009-10-25 23:21:35
By :
oasiis
หมายถึงต้องการส่งตัวแปร id_ceo แบบนี้ใช่ป่าวครับ
function echoDate($y,$m,$d,$acts){
global $G_id;
$ymd = sprintf("%04d-%02d-%02d",$y,$m,$d);
echo array_key_exists($ymd,$acts)
?"<a href=\"?adate={$ymd}&m={$m}&y={$y}&id_ceo={$G_id}\">{$d}</a>"
:$d;
}
Date :
2009-10-25 23:34:40
By :
num
ใช้ครับ แต่มันก้อยัง error อยู่ id_ceo={$G_id} ไม่มีค่าด้วยครับ
Date :
2009-10-25 23:44:19
By :
oasiis
ลองชี้ลิงค์ที่วันที่มี id_ceo=ตัวเลข ขึ้นมาป่าวครับ
Date :
2009-10-25 23:56:24
By :
num
ไม่มีครับ
Date :
2009-10-26 00:01:53
By :
oasiis
ต้องมีหน้าเริ่มต้นครับ กำหนดค่าตัวแปรไว้ด้วย
<a href="calendar.php?y=2009&m=10&id_ceo=1">test</a>
ลิงค์อื่นๆ ก็ต้องแทรกตัวแปร id_ceo ด้วยครับ เช่น
<a href="?y=<?php echo $next['y'];?>&m=<?php echo $next['m'];?>&id_ceo=<?php echo $G_id;?>">ต่อไป >>></a>
Date :
2009-10-26 00:13:53
By :
num
ใช้ตัวแปร global แบบข้างล่างนี้ได้ป่าวครับ
function echoDate($y,$m,$d,$acts){
global $G_id;
$ymd = sprintf("%04d-%02d-%02d",$y,$m,$d);
echo array_key_exists($ymd,$acts)
?"<a href=\"?adate={$ymd}&m={$m}&y={$y}&id_ceo={$G_id}\">{$d}</a>"
:$d;
}
Date :
2009-10-26 05:09:44
By :
num
กระทู้มหากาพย์ พี่หนุ่มสู้ๆ
Date :
2009-10-26 06:18:28
By :
plakrim
555+ เอาคุณหนุ่มไปไว้ที่ทำงานเลยค่ะ แปววว ...
Date :
2009-10-26 07:56:43
By :
gummezaka
เชียร์น่าดูเลยนิ แหะๆ
Date :
2009-10-26 08:45:12
By :
num
มันขึ้นว่า Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in C:\AppServ\www\schedule\23.php on line 10
ในทุกตารางวันที่เลยครับ
Date :
2009-10-26 09:39:08
By :
oasiis
ไม่รู้เหมือนกันนะ แต่ลองโค้ดนี้ไม่เจอ error ครับ
<?php
mysql_connect('localhost','root','12345');
mysql_select_db('ddd');
mysql_query('SET NAMES TIS620');
function echoDate($y,$m,$d,$acts){
global $G_id;
$ymd = sprintf("%04d-%02d-%02d",$y,$m,$d);
echo array_key_exists($ymd,$acts)
?"<a href=\"?adate={$ymd}&m={$m}&y={$y}&id_ceo={$G_id}\">{$d}</a>"
:$d;
}
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');
}
function displaydate ($x) {
$date_m=array ("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤษจิกายน","ธันวาคม");
$date_array=explode("-",$x);
$y=$date_array[0]+543;
$m=$date_array[1]-1;
$d=$date_array[2];
$m=$date_m[$m];
$displaydate="$d $m $y";
return $displaydate;
}
$m_now=date('m');
$y_now=date('Y');
$m = empty($_GET['m']) ? $m_now : (int)$_GET['m'];
$y = empty($_GET['y']) ? $y_now : (int)$_GET['y'];
$adate = empty($_GET['adate']) ? date('Y-m-d') : mysql_real_escape_string($_GET['adate']);
//สมมุติว่า $acts มาจาก database
$G_id = empty($_GET['id_ceo']) ? 1 : (int)$_GET['id_ceo'];
$sqlplan = "SELECT * FROM tbplan WHERE ceo = '$G_id'";
$obj = mysql_query($sqlplan) or die(mysql_error());
$acts = array();
While($objResult = mysql_fetch_assoc($obj)){
$name = $objResult['name_plan'];
$date = $objResult['date_plan'];
$acts[$date] = empty($acts[$date]) ? $name : $acts[$date].', '.$name;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>calendar of year <?php echo $y+543;?></title>
<style type="text/css">
.w-s {color:red;}
.w-m {color:yellow;}
.w-tu {color:pink;}
.w-w {color:green;}
.w-th {color:orange;}
.w-f {color:blue;}
.w-st {color:violet;}
.style2 {font-size: 18px}
a:link {
text-decoration: none;
color: #663399;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: underline;
color: #996600;
}
a:active {
text-decoration: none;
color: #CC9900;
}
a {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
}
.style13 {font-size: 14px; color: #FFFFFF; }
</style>
</head>
<body>
<?
$months = array(1=>'มกราคม','กุมภาพันธ์','มีนาคม',
'เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม',
'กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม');
?>
<!-- <h1 align="center">calendar of year <?php echo $y+543;?></h1> -->
<table cellpadding="10" align="center">
<?php
$num = cal_days_in_month(CAL_GREGORIAN, $m, $y);
$fd = date('w',mktime(1, 1, 1, $m, 1, $y));
$d = 0;
?>
<?php if ($m%4 == 1):?>
<tr valign="top">
<?php endif;?>
<th>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#666666">
<caption>
<span class="style2">เดือน<?php echo $months[(int)$m];?></span><br>
<br>
</caption>
<!-- first week -->
<tr>
<td width="60" height="50" align="center" valign="middle" class="w-s">อาทิตย์</td>
<td width="60" height="50" align="center" valign="middle" class="w-m">จันทร์</td>
<td width="60" height="50" align="center" valign="middle" class="w-tu">อังคาร</td>
<td width="60" height="50" align="center" valign="middle" class="w-w">พุธ</td>
<td width="60" height="50" align="center" valign="middle" class="w-th">พฤหัสบดี</td>
<td width="60" height="50" align="center" valign="middle" class="w-f">ศุกร์</td>
<td width="60" height="50" align="center" valign="middle" class="w-st">เสาร์</td>
<tr>
<?php if ($fd>0):?>
<td height="50" colspan="<?php echo $fd;?>" align="center" valign="middle"> </td>
<?php endif;?>
<?php while($fd + $d++ < 7): ?>
<td height="50" align="center" valign="middle"><?php echoDate($y,$m,$d,$acts);?></td>
<?php endwhile; $d--; ?>
</tr>
<!-- second to fifth week -->
<?php for($x=0;$x<31;$x++): $xx=$x%7; ?>
<?php if ($xx==0):?><tr><?php endif;?>
<td height="50" align="center" valign="middle"><?php $d++; echoDate($y,$m,$d,$acts);?></td>
<?php if ($xx==6 || $d==$num):?>
<?php if ($xx!=6):?>
<td height="50" colspan="<?php echo 6-$xx;?>" align="center" valign="middle"> </td>
<?php endif;?>
</tr>
<?php if ($d==$num){break;} ?>
<?php endif;?>
<?php endfor;?>
</table> </th>
<?php if ($m%4 == 0):?>
</tr>
<?php endif;?>
</table>
<div align="center">
<?php
$prev = prevMonthYear($m,$y);
$next = nextMonthYear($m,$y);
?>
<a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>&id_ceo=<?php echo $G_id;?>"><<< ย้อนหลัง</a><a href="?y=<?php echo $prev['y'];?>&m=<?php echo $prev['m'];?>"></a> |
<?php echo $months[(int)$m],' ',$y+543; ?> |
<a href="?y=<?php echo $next['y'];?>&m=<?php echo $next['m'];?>&id_ceo=<?php echo $G_id;?>">ต่อ ไป >>></a> </div>
<BR><BR>
<table border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr>
<th width="200" align="center" valign="middle" bgcolor="#999999"><span class="style13">วันที่</span></th>
<th colspan="2" align="center" valign="middle" bgcolor="#999999"><span class="style13">ภารกิจ</span></th>
</tr>
<?
$datenow=date('Y-m');
$sqlplan1 = "SELECT * FROM tbplan WHERE date_plan='$adate' ORDER BY date_plan ASC";
//$sqlplan1 = "SELECT * FROM tbplan WHERE ceo = '1' ORDER BY date_plan ASC";
$obj1 = mysql_query($sqlplan1) or die(mysql_error());
While($objResult1 = mysql_fetch_array($obj1)){
//echo "$sqlplan";
$id_plan=$objResult1["id_plan"];
$name=$objResult1["name_plan"];
$date=$objResult1["date_plan"];
$time=$objResult1["time_plan"];
$ceo=$objResult1["ceo"];
$ddate=displaydate($date);
?>
<tr>
<td width="200" align="center" valign="middle"><?=$ddate;?></td>
<td width="100" align="center"><?=$time;?></td>
<td width="600" align="left"> <?=$name?></td>
</tr><?}?>
</table>
</body>
</html>
Date :
2009-10-26 09:47:37
By :
num
ใช่ครับ ไม่ error ถ้าเปิดเพจนี้ตรงๆ
แต่พอลิงค์มาจากเพจอื่นมัน error ครับ
Code (PHP)
<?php
$sqlceo="SELECT tbceo.id_ceo,tbceo.name_ceo,tbceo.level,tblevel.name_level FROM tbceo Inner Join tblevel ON tbceo.level = tblevel.id_level WHERE tbceo.level BETWEEN '1' AND '3' ORDER BY tbceo.level ASC, tbceo.name_ceo ASC";
$rsceo = mysql_query($sqlceo);
While($row= mysql_fetch_array($rsceo))
{ $name_ceo=$row["name_ceo"];
$name_level=$row["name_level"];
$id_ceo=$row["id_ceo"];
$level=$row["level"];
?>
<a href="2.php?id_ceo=<?=$id_ceo;?>"><img src="img/profile/<? echo $id_ceo;?>.jpg" border="0" align="absmiddle"/><a>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle" class="style90"><a href="2.php?id_ceo=<?=$id_ceo;?>"><?php echo $name_ceo."<BR>".$name_level;?><a></td>
</tr>
</table><BR><?}?>
โค้ดจากเพจที่ลิงค์มาครับ
Date :
2009-10-26 09:58:28
By :
oasiis
งืม งง
Date :
2009-10-26 10:17:55
By :
num
ควรทำไงดีครับ?
Date :
2009-10-26 10:38:45
By :
oasiis
ดูจากโปรแกรมไม่น่าจะเกิด error นี้นะเพราะมีการประกาศ $acts = array(); ไว้ก่อนแล้ว
แต่ถ้าเกิดแบบนี้ลองเพิ่มคำสั่งนี้ครับ if (empty($acts)) { $acts = array(); } ไว้ก่อนบรรทัดที่ 9 ครับ
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in C:\AppServ\www\schedule\23.php on line 10
นอกจากนี้ลอง var_dump($acts); ที่หลังจากคำสั่งที่กำหนดค่า array $acts ด้วยครับว่ามีค่าอะไร
Date :
2009-10-26 10:46:26
By :
num
ได้แล้วครับ
สุโคยๆ สุดยอดมากเลยครับ
Date :
2009-10-26 14:00:29
By :
oasiis
แล้วก้อด้ายสักที ลุ้นอยู่ แปววว คิดว่าจาเอาหนุ่มไปอยู่ด้วยแว้ว 555+
Date :
2009-10-26 14:17:46
By :
gummezaka
เหอๆ
Date :
2009-10-26 20:45:06
By :
num
ผมมือใหม่อยู่ๆมาอ่าน งงไปเลย ตามไม่ทันซักกะที เหอ เหอ
Date :
2009-10-26 21:19:02
By :
taiton
พี่หนุ่มใจดีจัง เยี่ยมๆๆๆ
Date :
2009-10-27 08:10:57
By :
JavaScrap
สรุปแล้วใช้ได้ ...เก่งจัง...แต่ผมลองอ่านดู...งง
Date :
2009-11-05 15:47:02
By :
apichart
ขอดูโค๊ด....ทีเสร็จแล้วมั๊งได้มั๊ยครับ....
Date :
2009-11-05 15:54:33
By :
apichart
Load balance : Server 05