ระบุ keyword ในช่องค้นหาข้อมูลมากกว่า 2 คำแล้ว error ครับ?
ด้านล่างนี้ คือ error ที่เกิดไฟล์ที่รับข้อมูลจากฟอร์มมาประมวลผล หากระบุ keyword ในช่องค้นหาข้อมูล มากกว่า 2 คำ แต่ถ้าระบุ keyword คำเดียว จะไม่ error ครับ company.php?mode=resume_by_frmYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND position_1 LIKE '%บัญชี%' OR position_2 LIKE '%บัญชี%' OR position_3 LIKE '%' at line 1 ส่วนด้านล่างนี้ ก็คือ sript ที่ทำหน้าที่รับข้อมูลจากฟอร์ม
$keyword = $_GET[txt_keyword];
$keywordSQL = '';
$keywordList1 = array();
$keywordList2 = array();
$keywordArray = explode(' ', $keyword);
$keywordList1 ="SELECT user_id, name, surname, province, birthday, gender, position_1, position_2, picture, institute1, majoring1, branch1, gpa1, total_experiences, expect_salary, province, date_update FROM tbl_member WHERE level='1' AND human_status='yes'";
foreach ( $keywordArray AS $val ) {
if (trim($val) != '') {
$keywordList2[] = "AND position_1 LIKE '%$val%' OR position_2 LIKE '%$val%' OR position_3 LIKE '%$val%'";
}
}
if (count($keywordList2) > 0) {
$keywordSQL = "" . implode(" OR ", $keywordList2) . "";
}
$sql =$keywordList1.$keywordSQL." ORDER BY date_update DESC";
$result=mysql_db_query($dbname,$sql)or die(mysql_error());
$keyword = $_GET[txt_keyword];
$keywordSQL = '';
$keywordList1 = array();
$keywordList2 = array();
$keywordArray = explode(' ', $keyword);
$keywordList1 ="SELECT user_id, name, surname, province, birthday, gender, position_1, position_2, picture, institute1, majoring1, branch1, gpa1, total_experiences, expect_salary, province, date_update FROM tbl_member WHERE level='1' AND human_status='yes'";
foreach ( $keywordArray AS $val ) {
if (trim($val) != '') {
$keywordList2[] = "AND position_1 LIKE '%$val%' OR position_2 LIKE '%$val%' OR position_3 LIKE '%$val%'";
}
}
if (count($keywordList2) > 0) {
$keywordSQL = "" . implode(" OR ", $keywordList2) . "";
}
$sql =$keywordList1.$keywordSQL." ORDER BY date_update DESC";
$result=mysql_db_query($dbname,$sql)or die(mysql_error());
error ตรงนี้ ไปตรวจดูให้ถูก
$keywordList2[] = "AND position_1 LIKE '%$val%' OR position_2 LIKE '%$val%' OR position_3 LIKE '%$val%'";
พอเราจะสติงไปต่อกันที่
$sql =$keywordList1.$keywordSQL." ORDER BY date_update DESC";
มันเลยทำให้ human_status='yes'AND position_1 ติดกันครับ คำสั่งเลยผิด อีกอย่างครับ ผมแนะนำให้ จขก ตรวจสอบโดยการ echo คำสั่ง sql ออกมาดูครับ