[英]Create a custom array in php which contain datas from mysql database
[英]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.