 |
จะทำยังไงให้ join ตาราง ตามข้อมูลที่ส่งไปครับ รบกวนช่วยดูด้วยครับ |
|
 |
|
|
 |
 |
|
ผมได้ทำหน้า แสดงรายชื่อไว้ เมื่อคลิ๊กที่ชื่อ จะส่งตัวแปรเป็น รหัสสมาชิกไปยังอีกหน้า
ซึ่งหน้าที่รับค่า จะต้อง join ตารางโดยอ้างอิงจาก ค่าของ รหัสสมาชิกที่ผมส่งไป
จะทำได้อย่างไรครับ เพราะ โค้ดที่ผมทำ มันจะดึงเอาข้อมูลอันดับแรกสุดมาแสดง เสมอ
คำสั่ง join ที่ใช้ครับ (PHP)
$sql = 'SELECT m.id_m As id , m.name_m As name , m.idcard_m As idcard , m.address_m As address , m.rdate_m As rdate , '
. ' v.id_village As village , v.village As vill , '
. ' s.id_status As status , s.status As sta , '
. ' w.id_welfare As welfare , w.welfare As wel '
. ' FROM member m INNER JOIN village v ON m.id_village = v.id_village '
. ' INNER JOIN status s ON m.id_status = s.id_status '
. ' INNER JOIN welfare w ON m.id_welfare = w.id_welfare order by m.id_m asc LIMIT 0, 30 ';
ต้องเพิ่มเงื่อนไขอะไรบ้างครับ หรือ มีวิธีไหนบ้าง กรุณา แนะนำด้วยครับ
Tag : PHP, MySQL
|
|
 |
 |
 |
 |
Date :
2011-01-29 01:53:23 |
By :
l3ank |
View :
892 |
Reply :
11 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แย่จัง ตั้งตารอไม่มีใคร ที่เคยทำเลยเหรอครับ ขอความช่วยเหลือหน่อย
|
 |
 |
 |
 |
Date :
2011-01-29 08:38:45 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองเอา SQL คุณไปรันใน phpmyadmin ดูครับว่ามันได้อะไรออกมา
|
 |
 |
 |
 |
Date :
2011-01-29 08:46:35 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองแบบนี้ดูครับ
Code (PHP)
$sql="select table1.*,table2.*,table3.* form table1,table2,table3 where table1.field1=table2.field2";
$qr=mysql_query($sql);
ลองดูนะครับ ไม่รู้ใช่ที่ต้องการหรือเปล่า
|
 |
 |
 |
 |
Date :
2011-01-29 08:55:18 |
By :
boodemon |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
where table.field='id_m'
|
 |
 |
 |
 |
Date :
2011-01-29 09:06:31 |
By :
boodemon |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$sql = 'SELECT m.id_m As id , m.name_m As name , m.idcard_m As idcard , m.address_m As address , m.rdate_m As rdate , '
. ' v.id_village As village , v.village As vill , '
. ' s.id_status As status , s.status As sta , '
. ' w.id_welfare As welfare , w.welfare As wel '
. ' FROM member m INNER JOIN village v ON m.id_village = v.id_village '
. ' INNER JOIN status s ON m.id_status = s.id_status '
. ' INNER JOIN welfare w ON m.id_welfare = w.id_welfare WHERE m.id = '.$_POST['m_id'].'order by m.id_m asc LIMIT 0, 30 ';
|
 |
 |
 |
 |
Date :
2011-01-29 10:03:42 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 6 เขียนโดย : ไวยวิทย์ เมื่อวันที่ 2011-01-29 10:03:42
รายละเอียดของการตอบ ::
.ยังไม่ได้อยู่ดีครับ ผมลองใช้ทั้งตัวแปร ตรงๆ แบบนี้ $id_m และ แบบนี้ $_GET['id_m'] , $_POST['id_m']
ก็ยังไม่ได้ ครับ คราวนี้ผมเลยเอาโค้ดบรรทัดที่ทำการ รับค่ามาให้ดุด้วยครับ
Code (PHP)
print("<td align='left'>
<a href=\"detail_mem.php?id_m=$id_m \" onclick=\"return confirm // ตัวแปร $id_m ที่ส่งไป ครับ
(' ต้องการดูข้อมูล $name_m หรือไม่\"> $name_m </a></td>");
///////////////////////////////////////
///////////////////////////////////////
อันนี้เป็นโค้ด หน้าที่รับค่าและนำไปดึงข้อมูลมา
$sql = 'SELECT m.id_m As id , m.name_m As name , m.idcard_m As idcard , m.address_m As address , m.rdate_m As rdate , '
. ' v.id_village As village , v.village As vill , '
. ' s.id_status As status , s.status As sta , '
. ' w.id_welfare As welfare , w.welfare As wel '
. ' FROM member m INNER JOIN village v ON m.id_village = v.id_village '
. ' INNER JOIN status s ON m.id_status = s.id_status '
. ' INNER JOIN welfare w ON m.id_welfare = w.id_welfare
WHERE m.id_m=$id_m' //ตัวแปร $id_m ตัวนี้ เมื่อ echo ดู จะมีค่า ตาม ที่ส่งมาครับ เป็นค่าที่ไม่ตายตัว
. ' asc LIMIT 0, 30 ';
สองวันนี้กับโค้ดตัวนี้ทำผมไม่เป็นอันทำอะไรเลยครับ รบกวนผู้รู้ เข้ามาแนะนำด้วยครับ
เพราะทุกความคิดเห็น ในกระทู้นี้ ผมลองมาหมดแล้ว
|
 |
 |
 |
 |
Date :
2011-01-31 23:13:49 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดูครับ ตรงหน้ารับค่า ถ้าค่า id_m ส่งมาถูกต้องก็ไม่น่าจะผิดแล้วนะครับ
Code (PHP)
$id_m = $_GET['id_m'];
$sql = 'SELECT m.id_m As id , m.name_m As name , m.idcard_m As idcard , m.address_m As address , m.rdate_m As rdate , '
. ' v.id_village As village , v.village As vill , '
. ' s.id_status As status , s.status As sta , '
. ' w.id_welfare As welfare , w.welfare As wel '
. ' FROM member m INNER JOIN village v ON m.id_village = v.id_village '
. ' INNER JOIN status s ON m.id_status = s.id_status '
. ' INNER JOIN welfare w ON m.id_welfare = w.id_welfare
WHERE m.id_m=$id_m'
. ' asc LIMIT 0, 30 ';
|
ประวัติการแก้ไข 2011-01-31 23:37:07 2011-01-31 23:37:46
 |
 |
 |
 |
Date :
2011-01-31 23:36:01 |
By :
zankumuro |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 8 เขียนโดย : zankumuro เมื่อวันที่ 2011-01-31 23:36:01
รายละเอียดของการตอบ ::
ขอบคุณสำหรับความคิดเห็นนะครับ ผมทดลองมาแล้วครับ วิธีนี้ไม่ได้ผล ค่าตัวแปรก็ไม่ผิดนะครับ
เพิ่มเติมครับ ผมได้ลองทำโค้ดใหม่โดยไมใช้ การ join แต่เป็นการ select ตารางที่ต้องการ ผลลัพธ์ ที่ได้ก็เป็นที่น่าพอใจมากครับ
แต่ก็ยังติดปัญหาในลักษณะเดิม คือตัวแปรที่ส่งค่าเข้ามา ไม่สามารถ นำไปใช้ได้ แต่สามารถ ปริ้น แสดงค่าออกมาได้ เป็นที่น่าแปลกใจมาก
เมื่อผมเอาโค้ด จาก phpmyadmin ไปใช้ในหน้าโปรแกรม ค่าหลักที่จะใช้ดึงข้อมูลหากแทนด้วยตัวแปร จะใช้ไม่ได้ แต่ถ้า ใส่ตัวเลขไป
ตรงๆ จะสามารถดึงข้อมูล ออกมาได้ ผมทดลอง เอาตัวแปรที่ ส่งค่าเข้ามา แทนค่าด้วยตัวแปรอื่นก็ไม่เป็นผล ไม่ทราบว่าจะมีวิธีไหนอีกครับ
นี่เป็นตัวอย่างโค้ดที่ทำใหม่ครับCode (PHP)
$sql = 'SELECT m.id_m AS id , m.name_m AS name , m.idcard_m AS idcard , m.address_m AS address , '
. ' m.rdate_m AS rdate , '
. ' v.id_village AS village , v.village AS vill , '
. ' s.id_status AS status , s.status AS sta , '
. ' w.id_welfare AS welfare , w.welfare AS wel '
. ' FROM member m , village v , status s , welfare w '
. ' WHERE m.id_welfare = w.id_welfare and m.id_village = v.id_village
and m.id_status = s.id_status and m.id_m =4 '// แทนค่าตัวแปรด้วยตัวเลข จาก $id_m
. ' ORDER BY m.id_m ASC LIMIT 0, 30 ';
|
 |
 |
 |
 |
Date :
2011-02-01 00:06:45 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แก้ไขได้แล้วครับ จากบทความต่างๆ ในเว็บนี้ ขอบคุณ ทุกความคิดเห็น และ Thaicreate ครับ
|
 |
 |
 |
 |
Date :
2011-02-01 08:53:23 |
By :
l3ank |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ยินดีด้วยครับ ไม่รู้ว่าแก้ยังไง
$id_m ถ้ามันอยู่ใน ' จะอ่านค่าในตัวมันไม่ได้หน่ะครับ ต้องครอบด้วย " php ถึงจะอ่านค่าได้
|
 |
 |
 |
 |
Date :
2011-02-01 09:22:37 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|