数组php和数据库mysql保存数据

时间:2012-08-18 11:47:36

标签: php mysql arrays save

我遇到阵列问题。它实际上出现在页面上:几行的形式。每行对应于数据库中的记录,因此它们都有一个共同点。

更多感谢javascript我可以动态添加字段。

我遇到的麻烦是录制数据时。事实上我起初认为我应该delete一切,然后是insert所以我只是以下查询:

<?php if(isset($_POST['enreg']))
{

foreach($_POST['data'] as $data){
    if (!empty($data['code_s'])){
$sql2="DELETE FROM scenarii WHERE code_s='".mysql_real_escape_string($_GET['code_s'])."'";
mysql_query($sql2) or die(__LINE__.mysql_error().$sql2);    

$sql7 = '
INSERT INTO  scenarii SET 
code_s              = "'.mysql_real_escape_string($data['code_s']).'", 
titre               = "'.mysql_real_escape_string($data['titre']).'",
action              = "'.mysql_real_escape_string($data['action']).'", 
libelle             = "'.mysql_real_escape_string($data['libelle']).'",
jour                = "'.mysql_real_escape_string($data['jour']).'"' ;    
mysql_query($sql7) or die(__LINE__.mysql_error().$sql7);

    } 
  } 
}
?>

担心的是,删除的信息不会再次存储(尽管它们位于post变量中,因为它们以表单的形式存在,因此是变量。

实际上它只保存javascript中的新行。

麻烦在于我不能仅因为有新行而进行更新。

2 个答案:

答案 0 :(得分:1)

<?php if(isset($_POST['enreg']))
{
$sql2="DELETE FROM scenarii WHERE code_s='".mysql_real_escape_string($_GET['code_s'])."'";
mysql_query($sql2) or die(__LINE__.mysql_error().$sql2);  
foreach($_POST['data'] as $data){
if (!empty($data['code_s'])){

$sql7 = '
INSERT INTO  scenarii SET 
code_s              = "'.mysql_real_escape_string($data['code_s']).'", 
titre               = "'.mysql_real_escape_string($data['titre']).'",
action              = "'.mysql_real_escape_string($data['action']).'", 
libelle             = "'.mysql_real_escape_string($data['libelle']).'",
jour                = "'.mysql_real_escape_string($data['jour']).'"' ;    
mysql_query($sql7) or die(__LINE__.mysql_error().$sql7);

} 
} 
}
?>

在foreach循环之前放置删除查询

答案 1 :(得分:0)

进行了几个小时的测试我已经看到删除请求在循环中,因此它已经删除了所有重新注入,这就是为什么我只剩下最后一个输入的时间。

现在我删除了所有并重新注入了所有内容。它运作正常。

我不明白的是我之前没有看到它。

感谢大家的帮助。