กำลังศึกษาโค้ด Query อ่ะครับ ช่วยอธิบาย code ให้ทีนะครับ
จาก Query ของคุณเป้นการดึงข้อมูลรายละเอียดของคำตอบ จาก webboard_comment_tbl ครับ
Date :
2011-07-19 17:56:38
By :
webmaster
คุณไม่ได้ SELECT id_webboard จาก table ต้องดูด้วยว่ามันอยู่ใน table ใด ไม่งั้น มันก็ WHERE id_webboard=$id ไม่เจอนะคะ
ประวัติการแก้ไข 2011-07-19 18:33:37
Date :
2011-07-19 18:26:30
By :
nimporn
ขอบพระคุณอย่างสูงนะครับ ผมเริ่ม get ขึ้นมานิดนึงแล้ว
Date :
2011-07-19 18:27:09
By :
TRak
หรือว่าต้องการ query id จาก table webboard_tbl มาก่อน
"SELECT id FROM webboard_tbl WHERE id=$id";
จากนั้นก็ query comment จาก webboard_comment_tbl
"SELECT * FROM webboard_comment_tbl WHERE id_webboard=$id";
หรือเปล่า
Date :
2011-07-19 18:36:57
By :
nimporn
คือเมื่อเข้ามาในหน้าเวปบอร์ดของหัวข้อนั้นๆ ก็จะแสดงแค่เฉพาะคนที่ตอบในหัวข้อนั้นๆ อ่ะครับพี่
Date :
2011-07-19 18:42:47
By :
TRak
อธิบายเพิ่มเติมนะ order by id desc คือสั่งให้มันเรียงข้อมูล จากมากไปหาน้อยน่ะครับ
Date :
2011-07-19 18:49:14
By :
tomrambo
อ่ะ ตอนแรกที่เราจะเรียกหัวข้อเว็บบอร์ดใช่มั้ย มันก็ส่งค่า id มากับลิงค์
สมมติ <a href=webboardshow.php?id=3>หัวข้อที่ 3</a>
webboardshow.php
Code (PHP)
$id=$_GET['id'];
$sql="SELECT * FROM webboard_tbl WHERE id=$id";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$id=$row['id'];
$subject=$row['subject'];
$detail=$row['detail'];
echo $id,$subject,$detail; //จัดรูปแบบตามต้องการ
//ส่วนแสดงคอมเมนต์ของ id นี้ จริงๆ ควรกำหนดให้ id_webboard คือ id จะได้สัมพันธ์กับ id ใน webboard_tbl และตั้งชื่อ id ของ webboard_comment_tbl ใหม่เป็น id_comment กำหนดให้เป็น auto_increment
//แต่ query นี้จะทำตาม table ที่คุณออกแบบไว้
$sql2="SELECT * FROM webboard_comment_tbl WHERE id_webboard=$id ORDER BY id DESC";
$result2=mysql_query($sql2);
while ($row2=mysql_fetch_array($result2)) {
$id=$row2['id'];
$detail=$row2['detail'];
echo $id,$detail;
}
ประวัติการแก้ไข 2011-07-19 18:58:10
Date :
2011-07-19 18:57:18
By :
nimporn
ผมแคปเจ่อตารางมาให้ดูนะครับ
ตาราง webboard_tbl
มีข้อมูลในตารางดังนี้
ตาราง webboard_comment_tbl
มีข้อมูลในตารางดังนี้
จากทั้งสองตารางผมอยากทราบว่ามัน Join กันอย่างไรครับ เมื่อดูจากโค้ดด้านล่างนี้
$sql="select id,detail,date,time,username,image from webboard_comment_tbl where id_webboard=$id order by id desc";
ช่วยอธิบายโค้ดให้ผมเข้าใจทีนะครับ ผมอยากเข้าใจโค้ดในส่วนนี้นะครับ ขอบพระคุณมากครับ
Date :
2011-07-19 19:09:30
By :
TRak
query หัวข้อเว็บบอร์ดจากตาราง webboard_tbl แล้วก็สร้าง ลิงค์ไว้แต่ละหัวข้อเช่น
<a herf="detail.php?id=<?=$row['id']?>" target="_blank">อยากแสดงภาพถ่าย</a>
ซึ่งลิงค์จริงๆที่จะได้ก็คือ
<a herf="detail.php?id=23" target="_blank">อยากแสดงภาพถ่าย</a>
สังเกตุเลข 23 ครับ มันคือ id ของ ของหัวข้อนั้นครับที่เรา query ออกมา
พอ user คลิ๊กลิงคค์ปุ๊บ ก็จะเปิดหน้า detail.php ขึ้นมา ซึ่งจะเป็นหน้าแสดงรายละเอียดของหัวข้อนั้น
ว่าใครคอมเมนต์ว่าอะไรบ้าง หรือว่ารายละเอียดหัวข้อนั้นบรรยายไว้ว่าอย่างไรบ้าง ลิงค์ที่ user คลิ๊กมานั้น
มันก็จะติด query string มาด้วย คือ detail.php?id=23 ความหมายมันก็คือ ตรงๆเลย id เท่ากับ 23
ก็คือการประกาศตัวแปรนั่นแหละครับ ยัดค่า 23 เก็บไว้ใน ตัวแปร id
ทีนี้เราจะทำยังไงให้แสดงรายละเอียดหรือคอมเมนต์ของหน้านั้นๆให้มันตรงกับหัวข้อหรือสัมพันธ์กัน เราจะใช้อะไรอ้างอิงดี
คำตอบ ก็ ค่า id ที่ user คลิ๊กมาแหละครับ แต่ตอนนี้มันอยู่ในรูปแบบ query string บน address bar อยู่
อ่าว แล้วจะเอามันลงมายังไงล่ะ??? คำตอบคือ ก็ใช้วิธีการ GET ครับ เช่นจะเอาตัวแปรอะไรลงมาล่ะ ตัวแปร id หรอ
ก็ ใช้ $_GET['id'] อ้า....ทีนี้ก็ได้ ค่าตัวแปรจาก query string แล้วล่ะ แล้วจะเอาไปทำไรต่อ???
ก็เอาไป query ข้อมูลของ ตาราง webboard_comment_tbl ออกมาครับ ซึ่งก็นำ เจ้า $_GET['id'] นี่แหละ
ไปเป็นเงื่อนไข WHERE ในการ SELECT เช่น WHERE id_webboard = '".$_GET['id']."' เป็นต้น
คอมเมนต์ไหนที่มีค่าใน ฟิลล์ id_webboard เป็น 23 มันก็จะ query ออกมาหมดเลย ใช้ loop query ออกมาน่ะครับ
เป็นต้น
Date :
2011-07-19 19:46:21
By :
tomrambo
ขอบคุณครับผมจะลองทำตามดูครับผม
Date :
2011-07-19 21:29:03
By :
TRak
Load balance : Server 02