如何更新已插入和以后删除的数据库中的值

时间:2014-04-28 05:37:21

标签: php mysql sql

我在数据库中有一个表,它只有一列,它存储项目的名称。我有一个注册页面,显示所有这些项目,用户可以选择任何。在桌面上进行的任何更改都反映在我的注册页面上

用户在选择项目并注册时,则用户的所有信息都存储在另一个数据库表中。我的问题是,如果我使用项目名称(删除或插入名称)对表进行任何更改,它会在注册页面上反映出来但不会反映在用户的数据库中。

例如,假设一个用户选择了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);
?> 

1 个答案:

答案 0 :(得分:0)

如果您使用的是同一个数据库,则可以将项目的ID用作外键。它实际上取决于您的数据库结构。如果您正在存储类似

的内容
user_1, project_1
user_1, project_2

代替project_1,您可以使用项目表的ID,并在从cascade delete表中删除时使用project

userId, userName, project_id

其中project_id将是您的外键。

(您也可以按照评论部分的建议使用触发器。虽然对于此操作我会建议级联删除。如果您的操作比这更复杂,您可以选择triggers甚至{{1} })

SO POST详细了解了级联删除的工作原理