现在,我已经循环了一个表格,最终给了我一个2D数组。
数组0D
用户阵列1D
用户字段2D
数组([1] =>数组([fname] => qweqwe [lname] => qwewqe [email] => qwewqe [age] => wewqe)[2] =>数组( [fname] => 123123 [lname] => 123123 [email] => 23123 [年龄] => 23123))
这是我在我的田地里输入垃圾时得到的一个例子。 为了检查我是否可以获得每个表单的值,我使用了这个:
$ i = $ _POST ['number'];
$ corporate = $ _POST ['corporate'];
$ x = 1;
的print_r($企业);
而($ x <= $ i)
{
echo“名字第一名”。$ corporate [$ x] [“fname”]。“。”;
}
使用这个,我会获得第一个用户的名字,然后是第二个用户,依此类推。这证明我可以从我的表格中获取2D值。
我现在要做的是将这些值插入到我的表中。请记住,我的1D包含每个用户的值。 2D是值本身。
mysql_query(“INSERT INTO学生('fname','lname','email','age')VALUES
我不知道在那之后要放什么。任何帮助将不胜感激。
答案 0 :(得分:1)
您需要添加一组要插入的数据值。这些将采用的形式(“Robert”,“Brown”,“Robert.Brown @ uni.com”,“34”)(“Robert”,“Smith”,“Robert.Smith @ uni.com”,“33 “)
您使用的是哪个版本的PHP?
对于php5.3你可以尝试:
$values = array();
foreach($corporate as $line){
$values[] = "('".implode("','",array_map(function($x){ return addslashes($x); })) . "')";
}
$query = "INSERT INTO students ('fname','lname','email', 'age') VALUES";
$query .= implode($values);
$record = mysql_query($query);
否则,请尝试:
$values = array();
foreach($corporate as $line){
foreach($line as $i=>$item) $line[$i] = addslashes($item);
$values[] = "('".implode("','",$line) . "')";
}
$query = "INSERT INTO students ('fname','lname','email', 'age') VALUES";
$query .= implode($values);
$record = mysql_query($query);
要解决问题的第二部分,您需要编辑表定义并删除位于每个字段上的“NOT NULL”定义。你在服务器上有php我的管理员吗?您可以通过编辑表和字段来完成它,否则您可以使用ALTER TABLE运行sql。如果您想了解更多相关信息,请与我们联系。
答案 1 :(得分:1)
好吧,使用你的查询,深入了解它的含义,我终于明白了。
这是我使用的代码:
foreach($corporate as $line) { $values[] = "('".implode("','",$line) . "')";
echo "<br />";
print_r($values);
$a = implode(",", $values);
echo $a;
}
$query = "INSERT into students (fname, lname,email,age) VALUES $a";
$sql = mysql_query($query);
这在我的数据库上工作正常,就像魅力一样 但是,当我在我的朋友DB或在线数据库上尝试这个时,我收到一个错误,要求我给每个字段一个值。由于某种原因,它不能输入NULL值。
我想弄明白为什么,但我的问题的要点已经解决了 如果您知道导致我的错误的原因,请随时发表评论。感谢。