我有一个包含数据库数据的页面。该数据可由用户更改,然后将其插入数据库中。
我隐藏了输入类型 - <input type='hidden' name='data[]'>".$ppdata
这会将$ppdata
变量发送到另一个页面(表单无法显示)。
我在下一页接收数组如下:
$ippdata = 0;
foreach ($_POST["data"] as $dat){
$dataarray[$ippdata] = $dat;
$ippdata++;
}
然后我尝试插入数据:
$data = count($dataarray);
for($contador = 0; $contador < $data; $contador++){
$str[] = "('{$dataarray[$contador]}' )";
}
$s = implode(',',$str);
$sql = mysql_query("INSERT INTO pp (data) VALUES $s;");
这会在数据库中插入一个空白字段。 4 - 因为该用户只有4条记录。
注意:$ppdata
变量来自数据库,只需通过点击JQuery中的数据即可对其进行编辑。在第一页上插入MORE记录是不可能的。这是通过一个有4个位置的数组。每个位置都包含数据库中的记录。 (4条记录,因为它是与用户对应的数据。用户可以拥有更多记录。)
谢谢!
答案 0 :(得分:0)
我认为您正在尝试保存JSON字符串或其他内容。
更短的方法:
if(!empty($_POST["data"])) {
$data = json_encode($_POST["data"]);
}
$query = mysql_query("INSERT INTO pp (data) VALUES '".$data."'");
这是较短的方式。
您可以通过解码数据字段来获取此数据。
$data = json_decode($db_record, true); //true for returning array.
如果你真的想以自己的方式制作它,那么就会有更短的方式。
if(!empty($_POST["data"])) {
$str = '';
foreach($_POST["data"] as $key => $data) {
$str .= '{'.$data.'}'. (key($_POST["data"]) != $key ? ',' : '');
}
}
$query = mysql_query("INSERT INTO pp (data) VALUES '".$str."'");
答案 1 :(得分:0)
我会尝试这样的事情。
$data = count($dataarray);
$str = "";
for($contador = 0; $contador < $data; $contador++){
$str.= "('{$dataarray[$contador]}' )";
if($data != $contador){
$str.= ", ";
}
}
$query = "INSERT INTO pp (data) VALUES ".$str;
$sql = mysql_query($query);
或者您可以尝试使用类似的东西。
$mysqli = new mysqli($host, $username, $password, $db_name);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $mysqli->prepare("INSERT INTO pp (data) VALUES (?);");
for($contador = 0; $contador < $data; $contador++){
$stmt->bind_param('s', $dataarray[$contador]);
$stmt->execute();
}
$stmt->close();
答案 2 :(得分:0)
您没有在隐藏的输入中发布任何值:
<input type="hidden" name="data[]" value="the value to post" />