หน้าแสดงข้อมูล ข้อมูลที่เป็น aray แบบมีคอมมา ไม่โชว์ข้อมูล เกิดจากอะไรค่ะ
ขอดูโครงสร้างตาราง business, suppervisor ด้วยครับ
เหมือนจะเป็นที่ SQL ที่ไม่เข้าเงื่อนไข เนื่องจาก foreign key มันเป็น csv
อาจจะต้องเปลี่ยนโครงสร้างตาราง และใช้ JOIN แทน
Date :
2013-08-12 15:43:17
By :
cookiephp
นี้เป็นตาราง business กับ supervisor
Code (SQL)
CREATE TABLE `business` (
`bus_id` int(11) NOT NULL auto_increment,
`bus_name` varchar(70) collate utf8_unicode_ci NOT NULL,
`bus_year` varchar(5) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`bus_id`)
)
Code (SQL)
CREATE TABLE `suppervisor` (
`sup_id` varchar(15) collate utf8_unicode_ci NOT NULL,
`sup_title` varchar(10) collate utf8_unicode_ci NOT NULL,
`sup_name` varchar(20) collate utf8_unicode_ci NOT NULL,
`sup_sname` varchar(20) collate utf8_unicode_ci NOT NULL,
`sup_tel` varchar(15) collate utf8_unicode_ci default NULL,
`sup_pic` varchar(20) collate utf8_unicode_ci default NULL,
`sup_year` varchar(10) collate utf8_unicode_ci NOT NULL,
`sta_id` int(11) NOT NULL,
`id` varchar(10) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`sup_id`)
)
ประวัติการแก้ไข 2013-08-12 16:02:56
Date :
2013-08-12 16:01:55
By :
LaiLA
...
ประวัติการแก้ไข 2013-08-12 16:48:24
Date :
2013-08-12 16:46:28
By :
cookiephp
พอดูโครงสร้างตารางที่เหลือ และดูจากการแสดงผล
ไม่มีความจำเป็นที่จะต้อง SELECT สองตารางหลังเลยครับ เพราะคุณไม่ได้ใช้ข้อมูลของสองตารางหลังในการแสดงผลเลย
แต่ใช้ในการค้นหาอย่างเดียว
และจริงๆ เราไม่ควร SELECT หลายตารางแบบนั้นด้วย เพราะจะให้ผลลัพธ์ที่ไม่ถูกต้อง
SQL เหลือแค่นี้พอ ใช้ JOIN เพื่อให้สามารถเข้าถึง sup_name และ bus_name ได้
ใช้ IN เพื่อตรวจสอบเงือนไขการ JOIN เพราะคุณกำหนดให้ sup_id เป็น csv
Code (PHP)
$strSQL = "
SELECT * FROM supervision
JOIN business USING (bus_id)
JOIN supperviser ON (supperviser.sup_id IN (supervision.sup_id))
where sup_name LIKE '%".$_GET["txtKeyword"]."%' or bus_name LIKE '%".$_GET["txtKeyword"]."%' or super_date LIKE '%".$_GET["txtKeyword"]."%' ";
Date :
2013-08-12 16:52:45
By :
cookiephp
แก้แล้ว ยังไม่ได้เลยค่ะ เหมือนเดิม ค่ะ ไม่ error แต่ไม่โชว์ แบบนี้ ค่ะ
Date :
2013-08-12 21:50:01
By :
LaiLA
เท่าที่ดูไม่น่าจะผิดอะไรนะครับ
ลองใช้ SQL แค่นี้ก่อนครับ ตัดส่วน WHERE ออก ดูวามันออกมั้ย
$strSQL = "
SELECT * FROM supervision
JOIN business USING (bus_id)
JOIN supperviser ON (supperviser.sup_id IN (supervision.sup_id))
";
Date :
2013-08-12 23:24:06
By :
cookiephp
Load balance : Server 03