数组php和数据库mysql保存数据
Posted
技术标签:
【中文标题】数组php和数据库mysql保存数据【英文标题】:Array php and database mysql saving datas 【发布时间】:2012-08-18 11:47:35 【问题描述】:我遇到了数组问题。它实际上出现在一个页面上:一种多行的形式。每行对应数据库中的一条记录,因此它们都有一个共同点。
多亏了 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 的新行。
问题是我不能仅仅因为有新行就更新。
【问题讨论】:
【参考方案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 循环之前
【讨论】:
这就是我以前做过的,但我以前没有看到过。谢谢你的回答。【参考方案2】:经过几个小时的测试,我发现删除请求在每个循环中,所以它在所有重新注入之后都删除了,这就是为什么我每次只剩下最后一个输入。
现在我已经全部删除并重新注入。它工作正常。
我不明白的是我以前没见过。
感谢大家的帮助。
【讨论】:
以上是关于数组php和数据库mysql保存数据的主要内容,如果未能解决你的问题,请参考以下文章