我在数据库中有一个表,其中只有一列,它存储了所有项目的名称。我有一个注册页面,其中显示所有这些项目,其中用户可以选择任何。对表格所做的任何更改都会反映在我的注册页面上。
当用户选择项目并注册时,用户的所有信息都存储在另一个表中,即数据库。我的问题是,如果我在带有项目名称的表中做了任何更改(删除或插入一个名称),它会反映在注册页面上,但不会反映在用户的数据库上。
例如,假设一个用户选择了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);
?> 发布于 2014-04-28 13:53:50
如果您使用的是同一数据库,则可以使用项目的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包含有关级联删除工作方式的更多详细信息
https://stackoverflow.com/questions/23333237
复制相似问题