将Variable Array发送到另一个页面并插入到mysql中

时间:2014-05-15 10:26:48

标签: php mysql

我有一个包含数据库数据的页面。该数据可由用户更改,然后将其插入数据库中。

我隐藏了输入类型 - <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条记录,因为它是与用户对应的数据。用户可以拥有更多记录。)

谢谢!

3 个答案:

答案 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" />