繁体   English   中英

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

[英]Array php and database mysql saving datas

我在处理数组时遇到麻烦。 它实际上出现在页面上:多行形式。 每行对应于数据库中的一条记录,因此它们都有一个共同的分母。

更感谢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);

    } 
  } 
}
?>

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

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

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

<?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循环之前

经过几个小时的测试,我发现每个请求都在删除循环中,因此它在全部重新注入之后都删除了所有内容,这就是为什么我只有最后一个输入时间。

现在,我删除了所有内容,然后全部重新注入。 它正常工作。

我不明白的是,我之前从未见过。

感谢大家的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM