我希望我能得到一些帮助。
我正在制作一个添加任务表,用户可以在其中将标题、描述、用户分配和其他内容输入到任务的规范中。可以选择添加另一行(任务),这是使用 ajax 生成的。
行中的每个输入都有一个原始名称 (name="tasktitle0", name="privacy0"),当您添加新行时,它们具有相同的名称,但变量会递增并附加到 if ex (tasktitle1 , 和 taskprivacy1 等等)。
当我提交表单时,我 subst() 输入的名称,修剪前四个字符,然后修剪最后一个字符,因此名称变为“标题”、“隐私”,就像我要插入它们的数据库中的列一样.
如果我只提交一项任务,该应用程序就可以工作。但是如果我创建一个新行(任务)MySql 给我一个错误说
有一个错误。错误 #Column 'privacy' 指定了两次
我知道为什么要这样做,我只需要知道如何解决这个问题。
这是我修剪名称的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 行(任务)时,我知道在一个查询中我告诉它两次插入列但我该如何解决这个问题?想法?
有一个错误。错误 #Column 'privacy' 指定了两次 INSERT INTO dbname.tablename SET ticketNum='95240560',title='d',tdesc='asd',datefrom='02/26/2013',cat='PERSONAL',userid= '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'