ช่วยดู Mysql Query หน่อยครับ

เริ่มโดย deknakhon, 20 มีนาคม 2011, 09:25:04

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

deknakhon

SELECT tb_rooms.*,ARRIVE,ARRIVE FROM tb_rooms LEFT JOIN tb_roomassigns ON(tb_rooms.ROOMNO<>tb_roomassigns.ROOMNO)WHERE ARRIVE>='2011-03-26' AND DEPART<='2011-03-27'

ผมการให้แสดงข้อมูล  tb_rooms.ROOM NO ที่ไม่มีข้อมูล  tb_roomassigns.ROOMNO  โดยตรวจจาก วันที่ ถึงวันที่ 
ARRIVE='2011-03-26' AND DEPART='2011-03-27' 

CODE
$sql = "SELECT tb_rooms.*,ARRIVE,ARRIVE FROM tb_rooms ";
$sql .= "LEFT JOIN tb_roomassigns ON(tb_rooms.ROOMNO<>tb_roomassigns.ROOMNO)";
$sql .= "WHERE ARRIVE>='$_POST[ARRIVECHK]' ";   
$sql .= "AND DEPART<='$_POST[DEPARTCHK]' ";

echo $sql;

$result = mysql_db_query($dbname,$sql) or die ( mysql_error()." Cannot Connect to Database ");
$NRow = mysql_num_rows($result);
   while ($rs_roomList=mysql_fetch_array($result)){
echo "<INPUT TYPE=\"checkbox\" NAME=\"roomNO[]\" value=$rs_roomList[ROOMNO]>
$rs_roomList[ROOMNO]
";

}   


ขอบคุณลวงหน้าครับ
รับพัฒนาโปรแกรม PHP Mysql
รับออกแบบระบบโปรแกรม
รับวางระบบเครือข่ายคอมพิวเตอร์

Synchronize

#1
select แบบนี้ครับ

SELECT tb_rooms.*,ARRIVE,ARRIVE FROM tb_rooms
LEFT OUTER JOIN tb_roomassigns
ON(tb_rooms.ROOMNO = tb_roomassigns.ROOMNO
WHERE tb_roomassigns.ROOMNO is null and ARRIVE>='2011-03-26' AND DEPART<='2011-03-27'

แล้ว function mysql_db_query เค้าให้เลิกใช้แล้วครับ ต้องใช้ mysql_query แทน

 :wanwan017:

edit: แก้เพิ่มนิดนึง ลืมคำสั่งไปอีกตัว
เนื้อหาความรู้น่าสนใจ ใหม่ๆ
[direct=https://develop.un-no.com/w3/docs/clear-float-in-div]เทคนิคการแก้ไขปัญหาจากการ float ซ้อน float แล้ว clear[/direct]

[direct=https://service.un-no.com/unbbz]ทำเว็บได้ด้วยตัวเองฟรี ด้วยระบบเว็บสำเร็จรูป unbbz , เว็บธรรมดา , เว็บบอร์ด , เว็บขายของ ทำได้หมดเลย[/direct]

Moyzier

เรียนยังไม่ถึงเลย  แต่เรียนมานิดหน่อย  ปวดหัวมาก วิชา db

deknakhon

#3
อ้างถึงจาก: Synchronize ใน 20 มีนาคม 2011, 14:41:01
select แบบนี้ครับ

SELECT tb_rooms.*,ARRIVE,ARRIVE FROM tb_rooms
LEFT OUTER JOIN tb_roomassigns
ON(tb_rooms.ROOMNO = tb_roomassigns.ROOMNO
WHERE tb_roomassigns.ROOMNO is null and ARRIVE>='2011-03-26' AND DEPART<='2011-03-27'

แล้ว function mysql_db_query เค้าให้เลิกใช้แล้วครับ ต้องใช้ mysql_query แทน

  :wanwan017:

edit: แก้เพิ่มนิดนึง ลืมคำสั่งไปอีกตัว

ยังไม่แสดงข้อมูลห้องพักทั้งหมดครับ
ลองแก้ตามที่ท่านบอกมาแล้ว ครับ
ขอบคุณมากครับสำหรับ mysql_db_guery เป็น mysql_query


ใช้ Mysql_Query  มี Error 
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in 

ผมใช้ภาษา PHP & Mysql นะครับ
รับพัฒนาโปรแกรม PHP Mysql
รับออกแบบระบบโปรแกรม
รับวางระบบเครือข่ายคอมพิวเตอร์

Synchronize

จะใช้  mysql_query()  ต้อง ใช้  mysql_select_db('ชื่อฐานข้อมูล');  ก่อนครับ ใช้หลังจาก connect ครั้งเดียว

ส่วนเรื่อง sql ผมดูผิดไปนิด ถ้ายังงี้ คงต้องใช้ sub query ซึ่งไม่ค่อยดีเท่าไร เรื่องประสิทธิภาพนะ แบบนี้


SELECT a.*
FROM tb_rooms a
LEFT OUTER JOIN (select ROOMNO from tb_roomassigns where ARRIVE>='2011-03-26' AND DEPART<='2011-03-27') b
ON a.ROOMNO = b.ROOMNO
WHERE b.ROOMNO is null and

  :wanwan017:
เนื้อหาความรู้น่าสนใจ ใหม่ๆ
[direct=https://develop.un-no.com/w3/docs/clear-float-in-div]เทคนิคการแก้ไขปัญหาจากการ float ซ้อน float แล้ว clear[/direct]

[direct=https://service.un-no.com/unbbz]ทำเว็บได้ด้วยตัวเองฟรี ด้วยระบบเว็บสำเร็จรูป unbbz , เว็บธรรมดา , เว็บบอร์ด , เว็บขายของ ทำได้หมดเลย[/direct]

deknakhon

อ้างถึงจาก: Synchronize ใน 20 มีนาคม 2011, 17:24:07
จะใช้  mysql_query()  ต้อง ใช้  mysql_select_db('ชื่อฐานข้อมูล');  ก่อนครับ ใช้หลังจาก connect ครั้งเดียว

ส่วนเรื่อง sql ผมดูผิดไปนิด ถ้ายังงี้ คงต้องใช้ sub query ซึ่งไม่ค่อยดีเท่าไร เรื่องประสิทธิภาพนะ แบบนี้


SELECT a.*
FROM tb_rooms a
LEFT OUTER JOIN (select ROOMNO from tb_roomassigns where ARRIVE>='2011-03-26' AND DEPART<='2011-03-27') b
ON a.ROOMNO = b.ROOMNO
WHERE b.ROOMNO is null and

  :wanwan017:

ขอบคุณท่ามากเลยครับ ที่ช่วยเปิดไฟใฟ้ผม จะได้ทำงานต่อให้เสร็จ
+1  :wanwan031:
รับพัฒนาโปรแกรม PHP Mysql
รับออกแบบระบบโปรแกรม
รับวางระบบเครือข่ายคอมพิวเตอร์