簡體   English   中英

如何更新數據庫中已插入並隨后刪除的值

[英]How to update values in database which are already inserted and later deleted

我在數據庫中只有一張表,其中存儲了所有項目的名稱。 我有一個注冊頁面,其中顯示所有這些項目,用戶可以在其中選擇任何項目。 表格上所做的任何更改都會反映在我的注冊頁面上。

用戶在選擇項目並注冊時,用戶的所有信息將存儲在數據庫的另一個表中。 我的問題是,如果我在項目名稱的表中進行了任何更改(刪除或插入名稱),它都會反映在注冊頁面上,但不會反映在用戶數據庫上。

例如,假設一個用戶選擇了p1,p2並進行了注冊,然后如果我從數據庫中刪除了p2,它確實會從用戶的數據庫中刪除,只有從注冊頁面中刪除了它。 我希望這種變化能夠在所有地方得到體現。 我該如何實施?

    <?php
    include('connection2.php');
    if(isset($_POST['project'])) {
           $pro=implode(',', $_POST['project']);

    $fname=$_POST['fname'];
    $lname=$_POST['lname'];
    $age=$_POST['age'];
    $gender=$_POST['gender'];
    $username=$_POST['username'];
    $username=$_POST['username'];
    $password=$_POST['password'];

    mysql_query("INSERT INTO test(fname, lname, age, gender, username, password,projects)VALUES
    ('$fname', '$lname', '$age', '$gender', '$username', AES_ENCRYPT
    ('$password','.b.'), '$projects')");
    }
    header("location: registration2.php?remark=success");
    mysql_close($con);
?> 

如果使用相同的數據庫,則可以將項目的ID用作外鍵。 它實際上取決於您的數據庫結構。 如果您以類似的方式存儲

user_1, project_1
user_1, project_2

您可以使用項目表的ID代替project_1,並在從project表中cascade delete時使用cascade delete

userId, userName, project_id

其中project_id將是您的外鍵。

(您也可以按照注釋部分中的建議使用觸發器。盡管對於此操作,我建議級聯刪除。如果您的操作比較復雜,則可以使用triggers甚至stored procedure

SO POST詳細介紹了級聯刪除的工作方式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM