สอบถามเรื่องการ select ข้อมูลออกมาโชว์ให้เป็นแถวครับ
คือว่าผมทำระบบขอใช้ห้องสืบค้นครับ แล้วติดปัญหาตอน select ข้อมูลออกมาแสดง คือว่าดาต้าเบสผมเป็นแบบนี้ครับ เก็บข้อมูล ชื่อห้อง ชัวโมงที่ขอใช้(มีทั้งหมด 8 ชั่วโมงครับ) ชื่อวิชา ชื่อคนจอง วันที่จอง แล้วต้องการนำมาแสดงแบบในรูปครับ แล้วคราวนี้ผม select ข้อมูลมาได้แล้ว แต่ติดตรงที่ไม่รู้จะเขียนยังไงให้มันแสดงแบบในรูปได้ครับ คือว่า ถ้าชั่วโมงที่ 1 หรือชั่วโมงไหนมีคนจองไว้แล้ว ให้แสดงรายละเอียดของผู้จองทั้งหมด แต่ถ้าชั่วโมงไหนยังไม่ถูกจอง จะมีปุ่มให้คลิกเพื่อกรอกข้อมูลจองครับ รบกวนช่วยหน่อยนะครับนั่งคิดมาหลายวันแล้วคิดไม่ออก แล้วถ้ามีใครสงสัยหรืออยากได้ข้อมูลเพิ่มบอกได้นะครับ ขอบคุณครับ ปล.ลืมบอกไปครับ ชั่วโมงที่ 5 ของ ม.ปลาย เป็นชั่วโมงพักไม่มีการจองใช้งานครับ
select num_hour from room where num_hour="7"
- แล้วถ้าจะนับเอาเฉพาะวันนั้นก็เพิ่มเงื่อนไขวันเ้ข้าไปอีก and use_date="2010-06-17" ส่วนถ้าวันนั้นไม่มีคนจองเลย ผลลัพธ์มันก็จะออกมาเป็น 0 (หรือน้อยกว่า 1) โดยจะเล่นง่ายๆ ก็
if(num>=1) { //ถ้ามีคนจองตั้งแต่ 1 คนขึ้นไป
echo "<a href=\"ลิงค์ไปหน้า select รายชื่อวิชา+ผู้จองไรก็ว่าไป\">ข้อมูลผู้จองทั้งหมด</a>";
} else if($ชั่วโมงห้อง==5) //ก็ถ้าผลลัพธ์ชั่วโมงเป็น 5 ก็ไม่มีให้จอง{
echo "พัก";
}
หรืออาจจะเป็น
else if(num<=0) </span> {
echo "<a href=\"ลิงค์ไปหน้ากรอกรายละเอียดการจองก็แล้วแต่\">จอง</a>";
}
เท่าที่เดาเอาน่าจะใช้โค้ดเฉพาะในช่วง จอง, ข้อมูลผู้จอง เขียน <tr> แล้วก็ใช้วนลูป <td> เอาน่ะครับ หลังจากนั้นก็ปิด </tr> แล้วทีนี้ผมคิดว่าคุณอาจคงมี link ในหน้าข้อมูลผู้จอง เผื่อจองวันอื่น? ผิดพลาดประการใด ขออภัย :) ปล.คำสั่ง sql ก็ลองทดสอบใช้บน tool ที่ท่านใช้ select ข้อมูลก่อนว่าได้ตรงตามใจไหมน่ะครับ
ผมไม่รู้ว่าฐานข้อมูลเป็นอย่างไร แต่ถ้าทำไหว ผมแนะนำให้ปรับปรุงฐานข้อมูลให้เป็นแบบนี้
1 ตารางสมาชิก ใช้เก็บข้อมูลผู้จอง ถ้ามีระบบสมาชิกอยู่แล้ว และ ผู้จองต้องเป็นสมาชิก ใช้ตารางนั้นก็ได้
2 ตารางเก็บข้อมูลการจอง มีฟิลด์อย่างน้อย id,member_id,room_time,date id ไม่บอกก็น่าจะรู้ว่าเก็บอะไร member_id เก็บ id ของผู้จอง อ้่างอิงกับตารางแรก หากไม่ต้องเป็นสมาชิก อาจต้องเพอ่มฟิลดิ์ข้อมูลอื่นๆ ตามความจำเป็น room_time วัน เวลา ที่จอง ตามรายการด้านบน
จริงๆแล้วอาจอ้างอิงเป็นรหัสก็ได้ เช่น 1 = คาบที่ 1, 2 = คาบที่ 2 date วันที่ที่ทำการจอง
การแสดงผล ผมไม่รู้ว่าแสดงทีละวัน หรือแสดงทุกวัน ถ้าแสดงทีละวัน ก็ไม่ยาก ให้ query ออกมา ตาม date เลย ผลลัพท์ก็จะได้ตามรายการด้านบนอัตโนมัติ ช่วงเวลาที่ไม่มีในฐานข้อมูล ก็หมายถึง เมื่อไม่มีการจองครับ ส่วนวันที่มีการจอง ก็สามารถ query เอาข้อมูล จาก member_id มาแสดงผู้จอง ครับ ลองดูนะครับ
ทำไงรึ ?
ไม่ลองแชร์ประสบการณกับคนอื่นดูบ้าง...