両方の変数が配列が含まれている場合、これは、動作しないことができます。
foreach ($userrole as $key => $role) {
$query = "UPDATE members SET userrole ='$role'
WHERE member_id = '$member_id[$key]'";
// perform query ...
}
それとものみ$ MEMBER_ID場合は、配列である:
$query = "UPDATE members SET userrole ='$userrole'
WHERE member_id IN ('" . implode(',', $member_id) . "')";
// perform query ...
あなたは(私はここでは説明しません不器用なのMySQL CASE文を、または使用)の項目を一つずつ更新する必要があります変数が配列であることを反映するように、変数の名前をさらに変更する必要があります。
$userrole => $userroles
$member_id => $member_ids
さらに:これらの値はHTMLフォームに由来していますか?はいの場合、you should reallyはmysql_escape_string()
を使用して消毒します。これは、一度array_map()
を使用しての複数の値のために行うことができます。
ちょうどラインである
$userroles = array_map('mysql_escape_string', $userroles);
$member_ids = array_map('mysql_escape_string', $member_ids);
は、私たちが問題を引き起こしているかを決定するために、それ以上を必要としています。 – Mohamed