Re: 拡張フォームの元のソースからのバグが取れました
2012年7月31日 at 15:49
/concrete/blocks/controller.php: 167-168行です。
$vals=array( $this->bID, intval($data['qsID']), join(',',$pendingDeleteQIDs) ;
$unchangedQuestions=$db->query('DELETE FROM btFormQuestions WHERE bID=? AND questionSetId=? AND msqID IN (?)',$vals);
問題点は、167行目の "join(',',$pendingDeleteQIDs)" で作られる文字列の中に、","が含まれるため、168行目のSQL文の
"msqID IN (?)"に、最初のIDしか与えられないのでひとつしか削除されないというのが原因です。
修正方法はいくつかあると思いますが、以下が修正例です。
$vals=array( $this->bID, intval($data['qsID']);
$unchangedQuestions=$db->query('DELETE FROM btFormQuestions WHERE bID=? AND questionSetId=? AND msqID IN ('.join(',',$pendingDeleteQIDs).')',$vals);
Your post has been saved and will be published after approval by the forum moderator.