รบกวนพี่ๆ หน่อยค่ะ งมมาหลายวัน ต้องการรถคันที่ว่างในระบบ select จากวันที่นะค่ะ
Code (PHP)
if($_GET["txtKeyword"] != "") >> รับค่าวันที่มาจากระบบ
{
$dates=split("/",$_GET['txtKeyword']);
$date_in=$dates[2].'-'.$dates[0].'-'.$dates[1];
echo $date_in;
$strSQL = "SELECT * FROM bookroom WHERE ( '$date_in' BETWEEN date_in and date_out)"; >> ได้รถคันที่มีการจองตรงกับวันที่นี่มา 2 คัน คือคันที่ 1 กับ 3
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mysql_fetch_array($objQuery))
{
echo $objResult["car"];
$query_car=mysql_query("SELECT * FROM room WHERE id != '".$objResult["car"]."' "); >> เอาไปเช็คว่ามีรถคันไหนว่า โดยเช็คจาก id ที่ได้จากด้านบน
while($arr_car=mysql_fetch_array($query_car))
{
echo $arr_car["id"];
}
}
}
ผลลัพธ์ที่ได้จาก echo แรก คือ id รถคันที่ถูกจองตรงกับวันที่นี้ 1,3
ผลลัพธ์ที่ได้จาก echo ถัดมา คือ โชว์ รถคันที่ว่าง แต่ผลลัพธ์ที่ได้กลับเป็น 2,3,4,5,1,2,4,5 ซึ่งข้อมูลจะซ้ำกัน และ ต้องไม่โชว์ 1 กับ 3 เหมือนกับไปติดในลูป while
รบกวนพี่ๆ ทีค่ะ คิดยังไงก็คิดไม่ออก รบกวนขอคำแนะนำหน่อยค่ะพี่ๆTag : PHP, MySQL, HTML/CSS, JavaScript, CakePHP
Date :
2014-07-09 16:51:06
By :
sangkheb
View :
846
Reply :
7
ไม่รู้เหมือนกันว่า SQL มันทำได้ไหม
แต่ถ้าเป็นผมจะเก็บใส่ array ไว้ แล้วค่อยเลือกตัวที่ซ้ำออกมา
หรือไม่ก็ตัดตัวที่ไม่ซ้ำกันเลยใส array ออกไป
2 4 5 | 1
2 4 5 | 3
ประมาณนี่แหละครับ สำหรับผมนะ
รอเทพมาช่วยอีกแรงหละกันครับ
Date :
2014-07-09 17:02:09
By :
chayyim
ขอบคุณค่ะ
ลองทำใส่อาเรย์แล้วค่ะ แต่ก็ไม่ได้ ไม่รุว่าเขียนถูกหรือป่าว
Date :
2014-07-09 17:21:03
By :
sangkheb
ไม่รู้ว่าได้หรือเปล่าหน่ะครับ ลองดู โค้ดก็ใกล้เคียงแบบเดิมที่คุณทำครับ
Code (PHP)
if($_GET["txtKeyword"] != ""){ //>> รับค่าวันที่มาจากระบบ
$dates=split("/",$_GET['txtKeyword']);
$date_in=$dates[2].'-'.$dates[0].'-'.$dates[1];
//echo $date_in;
$strSQL = "SELECT * FROM bookroom WHERE ( '$date_in' BETWEEN date_in and date_out)"; //>> ได้รถคันที่มีการจองตรงกับวันที่นี่มา 2 คัน คือคันที่ 1 กับ 3
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$car = array();
while($objResult = mysql_fetch_array($objQuery)){
//echo $objResult["car"];
array_push($car, $objResult['car']); //+ จับ car ใส่ไว้ใน array ไว้ก่อน
}
$car = implode(',', $car); //+ จัดรูปแบบ car ให้อยู่ในรูปแบบ เช่น 1,2,3,4
$query_car=mysql_query("SELECT * FROM room WHERE id NOT IN (".$car.") ");// >> เอาไปเช็คว่ามีรถคันไหนว่า โดยเช็คจาก id ที่ได้จากด้านบน
while($arr_car=mysql_fetch_array($query_car)){
echo $arr_car["id"];
}
}
Date :
2014-07-09 17:21:21
By :
ไวยวิทย์
ขอบคุณค่ะ
เด๋วลองดูค่ะ
Date :
2014-07-09 17:28:20
By :
sangkheb
ถ้าจะให้ทำงานเร็วขึ้น สร้าง ตาราง หมายเลขรถไว้ก่อนครับ
แล้วใช้ select car.id, QueCar.carID form carList as car left join QueCar as Que on car.id = que.carID
and ( '$date_in' BETWEEN QueCar.date_in and QueCar.date_out)
where QueCar.carID is null
ก็จะได้ รายการ รถทีว่างครับ
Date :
2014-07-09 18:56:41
By :
Chaidhanan
ได้แล้วค่ะ ขอบคุณพี่ๆ มากเลยคะ่
Date :
2014-07-10 07:58:26
By :
sangkheb
Load balance : Server 03