仅在一个查询中插入克隆元素

时间:2014-06-09 18:06:23

标签: php mysql

我从原来创建了一个克隆元素,也增加了这样的名称值:

原  NAME = “UM”

克隆元素      NAME = “UM1”     NAME = “UM2”      NAME = “UM3”

我需要插入克隆元素的数据,我想这样做:

$UM1    = $_POST['UM1'];
$DS1    = $_POST['DS1'];                

$Cant1  = $_POST['Cant1'];                  

$FU1    = $_POST['FU1'];



$query = 'INSERT INTO TABLE 
VALUES (\''.$UM1.'\',\''.$DS1.'\',\''.$Cant1.'\',\''.$FU1.'\')';

mysql_query($query) or die(mysql_error());

对于每个元素,但代码是如此之多,存在任何方式来使这些不同,类似于css选择器select[id^="UM"]

非常感谢。

Fiddle

解决方案:

$rows = array();
$i = 1;
while (isset($_POST["UM$i"])) {
  $rows[] = array($_POST["UM$i"], $_POST["DS$i"], $_POST["Cant$i"], $_POST["FU$i"]);
  $i++;
}

foreach ($rows as $row) {
  $query = 'INSERT INTO papeleria (id, UM, DS, Cant, FU) VALUES ("","'.$row[0].'","'.$row[1].'","'.$row[2].'","'.$row[3].'")';
  mysql_query($query) or die(mysql_error());
}

2 个答案:

答案 0 :(得分:0)

不,没有这样的方法,但你不需要逃避'

$query = "INSERT INTO TABLE VALUES ('$UM1','$DS1','$Cant1','$FU1')";

这应该可以完美地运作

答案 1 :(得分:0)

你可以使用for循环

$rows = array();
$i = 1;
while (isset($_POST["UM$i"])) {
  $rows[] = array($_POST["UM$i"], $_POST["DS$i"], $_POST["Cant$1"], $_POST["FU$1"]);
  $i++;
}

foreach ($rows as $row) {
  $query = "insert into table values ('$row[0]', '$row[1]', '$row[2]', '$row[3]')";
  mysql_query($query) or die(mysql_error());
}