[英]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.