チェックボックスがビット単位の値 (CB1=1、CB2=2、CB3=4、CB4=8) に設定されたフォームがあり、それらの合計を単一のセルに格納したい (空のフィールドを避けるため)。チェックボックスの名前は同じですが、値が異なります。データは、シリアル化された文字列として処理中の php スクリプトに送信されます。name=value&name=value2&name3=value3&name=&name=value5
現在、文字列を分離し、値を適切なセルに効率的/簡単に取得できます。しかし、最初の値をセルに挿入し、その後の値を同じセルに追加する方法があるかどうか疑問に思っています。次のようになると思います。
foreach ( $qaPairs as $pair ) {
list($question , $answer) = explode('=', $pair);
// ^ splits Q1=A1 into $question=Q1 and $answer=A1
// this mysql_query is a modified version of what I'm currently using
mysql_query("UPDATE $table SET `$question`=`$question`+'$answer' WHERE `key`='$key';") or die(mysql_error());
// $question is also the name of the column/field
} // end foreach
それが違いを生むかどうかはわかりませんが、他のデータ型(テキストなどのビットごとの整数以外)と他のフォームタイプ(テキストフィールドなど)があります。
PS同じ名前のインスタンスが複数あるかどうかを何らかの方法でチェックしてから追加する必要はありません。
PPS私はこの質問からUPDATEのアイデアを得ました:MySQL バッチ増加値? 、試してみましたが、null
値を更新しませんでした(これを行う必要があります)。
前もって感謝します!