2015-05-21 71 views
0

我有一個串1組是..我有一個數組,並且不能使用內爆()來查詢

$str = RP-01,RP-11,RP-12,RP-20,RP-75,RP-92

,然後我有改變刺在數組中是這樣準備查詢的MySQL通過使用內爆()

$final = (explode(",",$str)); 
 

 
Array ([0] => RP-01 [1] => RP-11 [2] => RP-12 [3] => RP-20 [4] => RP-75 [5] => RP-92) 
 

 
$result = mysql_query("SELECT report.report_id, report_year, report_status, report_type, teacher_name, abstract, report_position, report_name, 
 
       GROUP_CONCAT(student_name ORDER BY student_name ASC SEPARATOR ', ') AS student_name 
 
       FROM student RIGHT JOIN report ON student.report_id = report.report_id 
 
       WHERE report.report_id IN (".implode(',', $final).") ");

的最後我嘗試使用破滅()在MySQL查詢和最後的結果仍然是

mysql_fetch_array() expects parameter 1 to be resource, boolean given in .... 
 

 
in line : while($row = mysql_fetch_array($result)){ ..}

爲什麼總是發生了。

謝謝所有人。

+0

字符串文字需要在SQL查詢中引用,但是你所有的implode正在做的是用一個逗號分隔它們,而不加引號:'IN(RP-01,RP-11,RP-12)'是無效的SQL那些是列名而不是值),應該是'IN('RP-01','RP-11','RP-12')' –

+0

現在你不應該使用舊的,不推薦使用的MySQL接口,但是更新您的代碼以使用MySQLi或PDO –

+0

我可以在數組的所有成員中添加引號並使用implode()。 – Phatter

回答

1

添加"秒 -

report.report_id IN ('".implode("','", $final)."') "); 

字符串必須加引號。

+0

非常感謝你:) – Phatter

+0

歡迎.... :) –

1

$結果= mysql_query(「SELECT report.report_id,report_year,report_status,REPORT_TYPE,TEACHER_NAME,抽象,report_position,REPORT_NAME, GROUP_CONCAT(student_name ORDER BY student_name ASC分離器 '')AS student_name FROM學生RIGHT JOIN報告ON student.report_id = report.report_id WHERE report.report_id IN('「.implode(',',$ final)。」)「');

+0

非常感謝你:) – Phatter

相關問題