|
|
|
พอดีผมได้โค้ดตัวอย่างการแสดงข้อมูลการจองห้องมา แล้วไม่รู้ประยุกต์ยังไง ผมอยากจะให้แสดงข้อมูลแบบนี้ |
|
|
|
|
|
|
|
พอดีผมได้โค้ดตัวอย่างมา แล้วไม่รู้ประยุกต์ยังไง กรุณาช่วยผมด้วยน่ะครับ
จากรูปข้างบนข้อมูลที่จองเมื่อมีการจองจะให้แสดง ชื่อเรื่อง(title) แทนคำว่า resv
Code (PHP)
<?php
mysql_connect('localhost','root','12345') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());
//create test data
$r = mysql_query("SHOW TABLES LIKE 'resv'");
if (mysql_num_rows($r) == 0){
mysql_query(
'CREATE TABLE `resv` ('.
'`id` int(10) unsigned NOT NULL AUTO_INCREMENT,'.
'`room` varchar(30) DEFAULT NULL,'.
'`resv_on` date DEFAULT NULL,'.
'`regis_on` date DEFAULT NULL,'.
'`title` text(60) DEFAULT NULL,'.
'`resv_at` tinyint(1) DEFAULT NULL,'.
'PRIMARY KEY (`id`)'.
')'
) or die(mysql_error());
echo 'create table successfully.<br>';
mysql_query(
"insert into `resv`(`id`,`resv_on`,`regis_on`,`resv_at`,`room`,`title`) values ".
"(1,'2009-10-10','2009-10-01','1','room1','เรื่องการสัมนา'),".
"(2,'2009-09-09','2009-10-02','2','room1','เรื่องด่วน'),".
"(3,'2009-09-08','2009-10-03','1','room2','เรื่องงบประมาณ'),".
"(4,'2009-09-09','2009-10-04','3','room2','เรื่องเบิกงบ');"
) or die(mysql_error());
echo 'insert data successfully.<br>';
}
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'];
$days = cal_days_in_month(CAL_GREGORIAN, $m, $y);
$rooms = array('room1','room2');
$data = array();
$r = mysql_query(
"SELECT * FROM resv ".
"WHERE MONTH(resv_on)='$m' AND YEAR(resv_on)='$y' "
);
while($rs = mysql_fetch_assoc($r)){
$resv_on = $rs['resv_on'];
$room = $rs['room'];
$resv_at = $rs['resv_at'];
if (empty($data[$resv_on])){
$data[$resv_on] = array();
}
if (empty($data[$resv_on][$room])){
$data[$resv_on][$room] = array();
}
$data[$resv_on][$room][$resv_at] = true;
}
?>
<!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=tis-620" />
<title>reserve room in each month</title>
</head>
<body>
<pre><?php print_r($data);?></pre>
<?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>
<table width="100%" border="1">
<tr>
<td rowspan="2">ว/ด/ป</td>
<?php foreach($rooms as $room):?>
<td colspan="3"><?php echo $room;?></td>
<?php endforeach;?>
</tr>
<tr>
<?php foreach($rooms as $room):?>
<td>เช้า</td>
<td>บ่าย</td>
<td>เช้าบ่าย</td>
<?php endforeach;?>
</tr>
<?php foreach(range(1,$days) as $d): ?>
<?php $date = sprintf('%04d-%02d-%02d',$y,$m,$d); ?>
<tr>
<td align="right"><?php echo $d;?>/<?php echo $m;?>/<?php echo $y;?></td>
<?php foreach($rooms as $room):?>
<td><?php echo !empty($data[$date][$room][1]) ? 'resv' : ' '; ?></td>
<td><?php echo !empty($data[$date][$room][2]) ? 'resv' : ' '; ?></td>
<td><?php echo !empty($data[$date][$room][3]) ? 'resv' : ' '; ?></td>
<?php endforeach;?>
</tr>
<?php endforeach;?>
</table>
</body>
</html>
Tag : - - - -
|
|
|
|
|
|
Date :
2009-10-03 10:33:15 |
By :
oasiis |
View :
1182 |
Reply :
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยผมหน่อยครับ
|
|
|
|
|
Date :
2009-10-03 18:07:45 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้สองที่ครับ
$data[$resv_on][$room][$resv_at] = true;
แก้เป็น
$data[$resv_on][$room][$resv_at] = $rs['title'];
<td><?php echo !empty($data[$date][$room][1]) ? 'resv' : ' '; ?></td>
<td><?php echo !empty($data[$date][$room][2]) ? 'resv' : ' '; ?></td>
<td><?php echo !empty($data[$date][$room][3]) ? 'resv' : ' '; ?></td>
แก้เป็น
<td><?php echo !empty($data[$date][$room][1]) ? $data[$date][$room][1] : ' '; ?></td>
<td><?php echo !empty($data[$date][$room][2]) ? $data[$date][$room][2] : ' '; ?></td>
<td><?php echo !empty($data[$date][$room][3]) ? $data[$date][$room][3] : ' '; ?></td>
|
|
|
|
|
Date :
2009-10-03 18:26:58 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้าอยากให้วันที่แสดงเป็นภาษาไทยล่ะครับ ต้องทำยังไงครับ?
|
|
|
|
|
Date :
2009-10-03 18:54:22 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใส่ function นี้ถัดจาก function prevMonthYear($m,$y) ก็ได้ครับ
function thaidate($s){
$months = array(1=>'มกราคม','กุมภาพันธ์','มีนาคม',
'เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม',
'กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม');
$t = strtotime($s);
return date('d',$t).' '.$months[date('n',$t)].' '.(date('Y',$t)+543);
}
และแก้ที่
<td align="right"><?php echo $d;?>/<?php echo $m;?>/<?php echo $y;?></td>
เป็น
<td align="right"><?php echo thaidate($date);?></td>
ครับ
|
|
|
|
|
Date :
2009-10-03 19:52:47 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณ num ครับ
ผมลองใช้
Code (PHP)
<?php
<tr onMouseOver="javascript:this.bgColor='#CCCCCC'" onMouseOut="javascript:this.bgColor=''">
<td width="242" align="right" bordercolor="#0066CC"><span class="style15"><?php echo thaidate($date);?></span></td>
<?php foreach($rooms as $room):?>
<td width="163" align="left" valign="middle" bordercolor="#0066CC"><a href="detail.php?title=<?=$tit;?>&use_date=<?=$resv_on;?>" class="style15"><?php echo !empty($data[$date][$room][1]) ? $data[$date][$room][1] : ' '; ?><BR></a></td>
<td width="163" align="left" valign="middle" bordercolor="#0066CC"><a href="detail.php?title=<?=$tit;?>&use_date=<?=$resv_on;?>" class="style15"><?php echo !empty($data[$date][$room][2]) ? $data[$date][$room][2] : ' '; ?></a></td>
<td width="163" align="left" valign="middle" bordercolor="#0066CC"><a href="detail.php?title=<?=$tit;?>&use_date=<?=$resv_on;?>" class="style15"><?php echo !empty($data[$date][$room][3]) ? $data[$date][$room][3] : ' '; ?></a></td>
<?php endforeach;?>
</tr>
?>
เพื่อจะทำลิงค์ ปรากฎ ว่า เมื่อเอาเมาส์ไปชี้ที่ลิงค์ มันมีค่าเหมือนกันทุกการข้อมูลการจองเลยครับ ไม่ทราบว่าทำไงดีครับ
|
|
|
|
|
Date :
2009-10-03 20:06:16 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าต้องการแค่ข้อมูล title กับ resv_on แก้แค่นี้ครับ
<a href="detail.php?title=<?php echo !empty($data[$date][$room][2]) ? urlencode($data[$date][$room][2]) : '';?>&use_date=<?php echo $date;?>" class="style15"><?php echo !empty($data[$date][$room][2]) ? $data[$date][$room][2] : ' '; ?></a>
|
|
|
|
|
Date :
2009-10-03 20:40:54 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้ววันที่ในส่วนของ
$prev = prevMonthYear($m,$y);
$next = nextMonthYear($m,$y);
ทำเป็นเดือนปี ของไทยได้รึป่าวครับ
ช่วยหน่อยครับ
|
|
|
|
|
Date :
2009-10-03 21:21:32 |
By :
oasiis |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตรงนั้นไม่เหมาะที่จะเป็นภาษาไทยครับ
แก้วันที่ตรงกลางน่ะครับ
$months = array(1=>'มกราคม','กุมภาพันธ์','มีนาคม',
'เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม',
'กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม');
<?php echo $m,'/',$y; ?> |
แก้เป็น
<?php echo $months[(int)$m],'/',$y+543; ?> |
ถ้าเป็น next จะใช้ตัวแปรแบบนี้ครับ
<?php echo $months[(int)$next['m']],'/',$next['y']+543; ?> |
ถามเยอะกว่านี้ไม่ได้แล้วนาครับเดี๋ยวเก็บตังค์อิๆ
อะล้อเล่นครับ คือถามเรื่องง่ายๆ แบบนี้มันเหมือนผมถูกหลอกใช้เลยอะ แหะๆ
|
|
|
|
|
Date :
2009-10-03 22:45:30 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือผมคิดว่า $m เป็นตัวเลข 1-12 เอามาใส่ในตัวแปร $months[$m] ก็ได้เป็นเดือนแล้วมันง่ายอะ
แต่ก็ไม่รู้ผมเข้าใจผิดอะไรป่าว คุณ oasiis อาจจะถามอีกเรื่องก็ได้ แปววว
|
|
|
|
|
Date :
2009-10-03 22:58:36 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|