|
|
|
PHP, MySQL ช่วยแก้ โค๊ต การ JOIN ตารางหน่อยครับ ผม JOIN แล้ว งง มาก ๆ |
|
|
|
|
|
|
|
Code (PHP)
<form id="form1" name="frmSearch" method="get" action="check_test2.php">
<table width="770" border="1" cellpadding="0" cellspacing="0" bordercolor="#999999">
<tr>
<th height="50"><p> ค้นหา
<select name="room" id="room">
<option value="" selected>กรุณาเลือกห้องประชุม</option>
<? include("connect.php");
$result = mysql_query( "select * from room ");
while($fetch2 = mysql_fetch_array($result)) {
?>
<option value="<?=$fetch2[id_room]?>">
<?=$fetch2[name_room]?>
</option>
<?
}
?>
</select>
<label>
<input type="text" name="day_booking" id="dateInput" onfocus="if (this.value=='กรุณาเลือกวันที่') this.value=''" value="วันที่จองห้องประชุม" /><script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.19.custom.min.js"></script>
<script type="text/javascript">
$(function(){
// แทรกโค้ต jquery
$("#dateInput").datepicker({minDate: +0, maxDate: '+1M '});
// minDate: -20 ไม่สามารถเลือกวันที่ ก่อน 20 วันก่อนหน้าได้
// maxDate: '+1M +10D' ไม่สามารถเลือก วันที่ถัดจาก อีก 1 เดือนและ 10 วัน ได้
// หากต้องการให้เลือกวันที่ได้เฉพาะวันปัจจุบันเป็นต้นไป
// สามารถกำหนด เป็น $("#dateInput").datepicker({minDate: 0});
});
</script>
</label>
<input type="submit" value="ค้นหา" />
</p></th>
</tr>
</table>
</form>
ฟอร์มค้นหา
ผมให้ค้นหา ห้องประชุม กับ วันที่
ถ้ามีในตารางให้ โชว์ ออกมา แต่ถ้าไม่มี ให้แสดงว่าไม่ว่าง
ผมลองจอยดูแล้วว มั่วมาก ๆ ๆ ไม่ขึ้นอะไรซะอย่างเลยยย ช่วยหน่อยครับ
Code (PHP)
ฐานข้อมูล: `boya`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `booking`
--
CREATE TABLE `booking` (
`id_booking` int(5) NOT NULL auto_increment,
`head` varchar(50) NOT NULL,
`id_room` int(5) NOT NULL,
`day_booking` varchar(10) NOT NULL,
`time_begin` varchar(10) NOT NULL,
`time_finish` varchar(10) NOT NULL,
`attendees` int(3) NOT NULL,
`telephone` varchar(10) NOT NULL,
`status_room` enum('1','2','3') character set utf8 collate utf8_unicode_ci NOT NULL default '1',
PRIMARY KEY (`id_booking`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
--
-- dump ตาราง `booking`
--
INSERT INTO `booking` VALUES (8, 'เธเธฃเธฐเธเธธเธกเธญเธขเธนเน', 14, '0000-00-00', '09.00', '10.00', 10, '0850118888', '1');
INSERT INTO `booking` VALUES (7, 'เธเธฃเธฐเธเธธเธกเธญเธขเธนเน', 14, '0000-00-00', '09.00', '10.00', 10, '2222', '1');
INSERT INTO `booking` VALUES (9, 'เธเธฃเธฐเธเธธเธกเธญเธขเธนเน', 14, '07/19/2012', '09.00', '10.00', 10, '0850118888', '1');
INSERT INTO `booking` VALUES (10, 'เธเธฃเธฐเธเธธเธกเธญเธขเธนเน', 12, '07/21/2012', '09.00', '10.00', 11, '11', '1');
INSERT INTO `booking` VALUES (11, '11111111', 12, 'เธเธฃเธธเ', '09.00', '10.00', 111, '11', '1');
INSERT INTO `booking` VALUES (12, 'เนเธเธฃเธดเธเธเธเธเธเธเธเธเธเธเธเธเธ', 13, '07/22/2012', '11.00', '10.00', 99, '0850118888', '1');
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `member`
--
CREATE TABLE `member` (
`id` int(5) NOT NULL auto_increment,
`username` varchar(15) character set utf8 collate utf8_unicode_ci NOT NULL,
`password` varchar(20) character set utf8 collate utf8_unicode_ci NOT NULL,
`name` varchar(30) character set utf8 collate utf8_unicode_ci NOT NULL,
`phone` varchar(30) character set utf8 collate utf8_unicode_ci NOT NULL,
`status` enum('admin','user') character set utf8 collate utf8_unicode_ci NOT NULL default 'user',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
--
-- dump ตาราง `member`
--
INSERT INTO `member` VALUES (1, 'boya', '1234', 'TTTTTTTT', '[email protected]', 'user');
INSERT INTO `member` VALUES (2, 'test', '1234', 'testnaaa', '', 'user');
INSERT INTO `member` VALUES (3, 'test1', '1', 'testna', '0840115519', 'user');
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `room`
--
CREATE TABLE `room` (
`id_room` int(5) NOT NULL auto_increment,
`name_room` varchar(30) NOT NULL,
`number` varchar(3) NOT NULL,
`picture_room` varchar(10) NOT NULL,
PRIMARY KEY (`id_room`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
--
-- dump ตาราง `room`
--
INSERT INTO `room` VALUES (14, 'เธซเนเธญเธเธเธฒเธ', '20', '2129.1.jpg');
INSERT INTO `room` VALUES (12, 'เธญเธฐเนเธฃ เน เน เน', '11', '2769.Tonao');
INSERT INTO `room` VALUES (13, 'เธซเนเธญเธเธเธฃเธฐเธเธธเธก', '11', '4467.php5H');
INSERT INTO `room` VALUES (11, 'เนเธญเธฒเนเธเธงเธฐ', '223', '9337.Tonao');
นี่ฐานข้อมูลครับ
Code (PHP)
<?php
include ("connect.php");
$strSQL = "SELECT room.id_room, booking.id_booking ";
$strSQL = "room.name_room, room_picture_room ";
$strSQL = "booking.head, booking.telephone ";
$strSQL = "FROM room INNER JOIN booking ON room.id_room = booking.id_booking ";
?>
<?=$objResult["head"];?>
<?=$objResult["telephone"];?>
อันที่ผมได้จอย ครับ ไม่โชว์อะไรเลยยย - -
อยากให้ออกมาแบบนี้ ครับ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2012-07-18 15:36:37 |
By :
B[O]YA |
View :
1981 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูจาก 2 ตาราง เห็นแล้วแน่ๆคือ id_room มีคีย์ที่สามารถผูกแล้วเข้ากันได้ แต่ไม่ทราบว่าอีกตารางท่านจะเอาอะไรไปผูกมิทราบครับ
|
|
|
|
|
Date :
2012-07-18 17:08:51 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมว่าน่าจะเอาที่แสดงผิดหรือเปล่าครับ
$objResult["head"]
ถ้าเอาไปใช้ น่าจะ
$objResult["booking.head"]
หรือเปล่า :)
|
|
|
|
|
Date :
2012-07-18 17:25:25 |
By :
ichiko |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สองตารางนี้มันไม่สัมพันธ์กันนิ แบบนี้จะเอาอะไรมาเป็นเงื่อนในการ join หละ
เช่น ไอดีตาราง 1 ต้องเท่ากับ ไอดีตาราง 2 แบบนี้น่ะการ join
|
|
|
|
|
Date :
2012-07-18 18:24:29 |
By :
บังเอิญผ่านมาเห็น |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูการออกแบบฐานข้อมูลแล้วแปลกๆๆ room_status น่าจะเก็บไว้ที่ Table roomเพื่อให้รู้ว่าห้องนั้นมีสถานะว่างหรือไม่
ส่วน Table Booking น่าจะมี Id ของmember เพื่อให้รู้ว่า Booking นี้เป็นของ member ท่านใด
ส่วนของ SQL ก็ประมานนี้ค่ะ
Code
SELECT room.id_room, booking.id_booking, room.name_room, room.picture_room, booking.head, booking.telephone
FROM room
INNER JOIN booking ON room.id_room = booking.id_booking
การต่อสตริงถ้าทำแบบที่คุณ boya คือ
Code
$strSQL = "SELECT room.id_room, booking.id_booking ";
$strSQL = "room.name_room, room_picture_room ";
$strSQL = "booking.head, booking.telephone ";
$strSQL = "FROM room INNER JOIN booking ON room.id_room = booking.id_booking ";
SQL ที่ได้ก็คือ "FROM room INNER JOIN booking ON room.id_room = booking.id_booking "; ค่ะ
ถ้าจะต่อต้องมี . (จุด)เชื่อมค่ะ เช่น
Code
$strSQL = "SELECT room.id_room, booking.id_booking ";
$strSQL .= "room.name_room, room_picture_room ";
$strSQL .= "booking.head, booking.telephone ";
$strSQL .= "FROM room INNER JOIN booking ON room.id_room = booking.id_booking ";
|
|
|
|
|
Date :
2012-07-18 23:18:49 |
By :
n_t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|