少しでもお役に立てれば幸いです。
ユーザーがタイトル、説明、割り当てられたユーザーなどをタスクの仕様に入力できる追加タスクテーブルを作成しています。別の行 (タスク) を追加するオプションがあり、これは ajax を使用して生成されます。
行の各入力には元の名前 (name="tasktitle0", name="privacy0") があり、新しい行を追加すると、変数がインクリメントされ、if ex (tasktitle1 、および taskprivacy1 など)。
フォームを送信すると、入力の名前を subst() し、最初の 4 文字をトリミングしてから最後の文字をトリミングして、名前が「タイトル」、「プライバシー」になるようにします。それらを挿入するデータベースの列と同じです。 .
タスクを 1 つだけ送信すると、アプリは機能します。しかし、新しい行 (タスク) を作成すると、MySql で次のエラーが表示されます。
エラーが発生しました。エラー #Column 'privacy' が 2 回指定されました
なぜそうしているのかはわかっています。この問題を解決する方法を知りたいだけです。
これは、名前をトリミングする php です。
if ($_GET['s'] == "Y") {
$str2 = '';
foreach ($_POST as $p => $v) {
if (substr($p, 0, 4) != "flag" && $p != "key" && substr($p, 0, 4) == "task") {
if (!empty($v)) {
$str2 .= mb_substr(substr($p, 4), 0, -1) . "='" . addslashes($v) . "',";
} else {
$str2 .= substr($p, 4) . "=NULL,";
}
}
}
}
挿入する場所は次のとおりです。
$sql3 = "INSERT INTO nameofDB.tablename SET ";
$sql3 .= $str2;
$sql3 = substr($sql3, 0, -1);
if ($str2 != '') {
if ($r2 = mysql_query($sql3, $Link)) {
$mess = "Successfully saved support ticket.";
} else {
$mess = "There was an error. Error #" . mysql_error($Link);
echo $mess . "<br>";
echo $sql3;
exit;
}
}
表示されるエラーは次のとおりです。
これは、2 つの行 (タスク) を実行するときです。1 つのクエリで、列に 2 回挿入するように指示していることはわかっていますが、どうすればこれを修正できますか? アイデア?
エラーが発生しました。エラー #Column 'privacy' が 2 回指定されました'3171',status='INACTIVE',priority='MEDIUM',privacy='PUBLIC',ticketNum='95240560',title='sad',tdesc='d',datefrom='02/28/2013', cat='BEREAVEMENT',userid='1949',status='COMPLETED',priority='HIGH',privacy='PRIVATE'