Sunday, February 08, 2009

ย้าย Server Siamnaliga.com

เนื่องจาก Siamnaliga.com นั้นมีคนมาใช้งานมากมายจน server ที่เช่าอยู่รองรับไม่ไหว ทางกรรมการของเว็บจึงจัดการให้มีการขยับขยายไปยัง server ที่ประสิทธิภาพสูงกว่า พอดีพวก forum กับ CMS ที่ใช้อยู่นั้นมันโบราณมากๆ พอไปอยู่ที่ใหม่มันเลยงง ไม่ทำงานกันดื้อๆ ลองแก้อยู่แป๊ปนึงก็พอจะเอา Forum กลับคืนมาได้ เลยเอาวิธีแก้ซึ่งคาดไม่ถึงมาแปะไวซักหน่อย
ปัญหาที่การทำงานของ 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

ซึ่งดูโอเคก็ไม่น่าจะผิดตรงไหน แต่พอลองรันดูจะเกิด 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

คราวนี้ผ่านโลดใช้งานได้ ทำเอางงไปเลยว่า MySqlรุ่นใหม่มันเขี้ยวเรื่องลำดับการเขียนชื่อ Table ด้วยเหรอเนี่ย

No comments: