【问题标题】:How to update values in database which are already inserted and later deleted如何更新数据库中已经插入并稍后删除的值
【发布时间】:2014-04-28 05:37:20
【问题描述】:

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

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

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

【问题讨论】:

  • 使用类似here的触发器
  • so users 数据库与您用于存储项目名称的数据库不同?
  • 同一个数据库,但有两个差异表。一张表用于存储用户信息,另一张表用于更新项目名称
  • 那么用户项目存储在用户表中的什么位置?
  • mysql_query is history ...请更新您的代码!! :)

标签: php mysql sql


【解决方案1】:

如果您使用的是同一个数据库,您可以使用项目的 id 作为外键。它实际上取决于您的数据库结构。如果您要存储为

user_1, project_1
user_1, project_2

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

userId, userName, project_id

project_id 将是您的外键。

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

SO POST 有更多关于级联删除工作原理的详细信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-02
    • 2012-04-10
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    相关资源
    最近更新 更多