A-AA+then

สอบถามเรื่องการ select ข้อมูลออกมาโชว์ให้เป็นแถวครับ

1,199
สอบถามเรื่องการ select ข้อมูลออกมาโชว์ให้เป็นแถวครับ
คือว่าผมทำระบบขอใช้ห้องสืบค้นครับ  แล้วติดปัญหาตอน select ข้อมูลออกมาแสดง  คือว่าดาต้าเบสผมเป็นแบบนี้ครับ

เก็บข้อมูล  ชื่อห้อง  ชัวโมงที่ขอใช้(มีทั้งหมด 8 ชั่วโมงครับ)  ชื่อวิชา  ชื่อคนจอง  วันที่จอง

แล้วต้องการนำมาแสดงแบบในรูปครับ

แล้วคราวนี้ผม select ข้อมูลมาได้แล้ว  แต่ติดตรงที่ไม่รู้จะเขียนยังไงให้มันแสดงแบบในรูปได้ครับ  คือว่า  ถ้าชั่วโมงที่ 1 หรือชั่วโมงไหนมีคนจองไว้แล้ว  ให้แสดงรายละเอียดของผู้จองทั้งหมด  แต่ถ้าชั่วโมงไหนยังไม่ถูกจอง จะมีปุ่มให้คลิกเพื่อกรอกข้อมูลจองครับ  รบกวนช่วยหน่อยนะครับนั่งคิดมาหลายวันแล้วคิดไม่ออก 

แล้วถ้ามีใครสงสัยหรืออยากได้ข้อมูลเพิ่มบอกได้นะครับ  ขอบคุณครับ


ปล.ลืมบอกไปครับ  ชั่วโมงที่ 5 ของ ม.ปลาย เป็นชั่วโมงพักไม่มีการจองใช้งานครับ

4 ความคิดเห็น

พอ select แล้วได้อะไรออกมาครับ?
ผมตอบแบบเดาๆเอานะครับ อ่านแ้ล้วยังไม่ค่อยชัวร์ (-_-")

ถ้าดูข้อมูลผู้จองทั้งหมด จะนับเป็นวันด้วยไหม ไม่แน่ใจ

- ก็ select แล้ว where เอาเฉพาะชั่วโมงนั้นไปเลยก็ได้
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 // หรืออาจจะเป็น else if(num<=0)
{
echo "<a href=\"ลิงค์ไปหน้ากรอกรายละเอียดการจองก็แล้วแต่\">จอง</a>";
}

เท่าที่เดาเอาน่าจะใช้โค้ดเฉพาะในช่วง จอง, ข้อมูลผู้จอง
เขียน <tr> แล้วก็ใช้วนลูป <td> เอาน่ะครับ หลังจากนั้นก็ปิด </tr>
แล้วทีนี้ผมคิดว่าคุณอาจคงมี link ในหน้าข้อมูลผู้จอง เผื่อจองวันอื่น?

ผิดพลาดประการใด ขออภัย :)

ปล.คำสั่ง sql ก็ลองทดสอบใช้บน tool ที่ท่านใช้ select ข้อมูลก่อนว่าได้ตรงตามใจไหมน่ะครับ
1

การจะ query ทั้งหมด สำเร็จหรือไม่ บางทีมันก็ต้องเริ่มตั้งแต่การรออกแบบฐานข้อมูลครับ

ผมไม่รู้ว่าฐานข้อมูลเป็นอย่างไร แต่ถ้าทำไหว ผมแนะนำให้ปรับปรุงฐานข้อมูลให้เป็นแบบนี้

1 ตารางสมาชิก ใช้เก็บข้อมูลผู้จอง ถ้ามีระบบสมาชิกอยู่แล้ว และ ผู้จองต้องเป็นสมาชิก ใช้ตารางนั้นก็ได้
2 ตารางเก็บข้อมูลการจอง มีฟิลด์อย่างน้อย id,member_id,room_time,date

id ไม่บอกก็น่าจะรู้ว่าเก็บอะไร
member_id เก็บ id ของผู้จอง อ้่างอิงกับตารางแรก หากไม่ต้องเป็นสมาชิก อาจต้องเพอ่มฟิลดิ์ข้อมูลอื่นๆ ตามความจำเป็น
room_time วัน เวลา ที่จอง ตามรายการด้านบน จริงๆแล้วอาจอ้างอิงเป็นรหัสก็ได้ เช่น 1 = คาบที่ 1, 2 = คาบที่ 2
date วันที่ที่ทำการจอง

การแสดงผล ผมไม่รู้ว่าแสดงทีละวัน หรือแสดงทุกวัน

ถ้าแสดงทีละวัน ก็ไม่ยาก ให้ query ออกมา ตาม date เลย ผลลัพท์ก็จะได้ตามรายการด้านบนอัตโนมัติ ช่วงเวลาที่ไม่มีในฐานข้อมูล ก็หมายถึง เมื่อไม่มีการจองครับ ส่วนวันที่มีการจอง ก็สามารถ query เอาข้อมูล จาก member_id มาแสดงผู้จอง ครับ

ลองดูนะครับ
2

ได้แล้วครับ  ขอบคุณที่แนะนำ
3

ได้แล้ว ?

ทำไงรึ ?

ไม่ลองแชร์ประสบการณกับคนอื่นดูบ้าง...
4
^