ปัญหาที่การทำงานของ Forum Invision board นั้นเกิดจากตัว MySql ที่เป็นรุ่นใหม่ขึ้นเลยค่อนข้างจะจุกจิกหน่อย MySql เดิมคือ รุ่น4.0.27 ที่ใหม่คือ รุ่น4.0.67
Script ที่มีปัญหาคือ
SELECT f.*, c.id as cat_id, c.position as cat_position, c.state as cat_state, c.name as cat_name, c.description as cat_desc,c.image, c.url, m.member_name as mod_name, m.member_id as mod_id, m.is_group, m.group_id, m.group_name, m.mid
from ibf_forums f, ibf_categories c
LEFT JOIN ibf_moderators m ON (f.id=m.forum_id)
WHERE f.category=c.id
order by c.position, f.position
from ibf_forums f, ibf_categories c
LEFT JOIN ibf_moderators m ON (f.id=m.forum_id)
WHERE f.category=c.id
order by c.position, f.position
ซึ่งดูโอเคก็ไม่น่าจะผิดตรงไหน แต่พอลองรันดูจะเกิด error
#1054 - Unknown column 'f.id' in 'on clause'
หาที่ผิดอยู่นานก็ไม่เจอ ลองแก้มั่วๆไปหลายแบบก็ไม่สำเร็จ สุดท้าย ลองสลับลำดับการเขียนชื่อของ Table (ตัวอักษรน้ำเงิน)
SELECT f.*, c.id as cat_id, c.position as cat_position, c.state as cat_state, c.name as cat_name, c.description as cat_desc,c.image, c.url, m.member_name as mod_name, m.member_id as mod_id, m.is_group, m.group_id, m.group_name, m.mid
fromibf_categories c,ibf_forums f
LEFT JOIN ibf_moderators m ON (f.id=m.forum_id)
WHERE f.category=c.id
order by c.position, f.position
fromibf_categories c,ibf_forums f
LEFT JOIN ibf_moderators m ON (f.id=m.forum_id)
WHERE f.category=c.id
order by c.position, f.position
คราวนี้ผ่านโลดใช้งานได้ ทำเอางงไปเลยว่า MySqlรุ่นใหม่มันเขี้ยวเรื่องลำดับการเขียนชื่อ Table ด้วยเหรอเนี่ย
No comments:
Post a Comment