我遇到阵列问题。它实际上出现在页面上:几行的形式。每行对应于数据库中的记录,因此它们都有一个共同点。
更多感谢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中的新行。
麻烦在于我不能仅因为有新行而进行更新。
答案 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)
进行了几个小时的测试我已经看到删除请求在循环中,因此它已经删除了所有重新注入,这就是为什么我只剩下最后一个输入的时间。
现在我删除了所有并重新注入了所有内容。它运作正常。
我不明白的是我之前没有看到它。
感谢大家的帮助。