确认完成后,将详细信息从一个表移动到另一个表[sql]

时间:2013-10-17 17:43:57

标签: php html mysql sql database-design

我有一个注册码,它将用户详细信息插入到我选择的表中。

问题是我向用户添加了“确认代码”,因此需要每个帐户通过邮件验证用户。确认完成后,“确认”栏将变为“已确认”。如果用户未验证其帐户,则确认代码将保留在“确认”列中。

问题是我在html中创建了一个表,它使用数据库来显示活动用户。

我不希望未确认的用户出现在tbale中,所以我尝试添加一些条件:

$cu = mysql_query("SELECT * FROM `users` where uname='$uname' && confirmation='confirmed'");
$cu = mysql_fetch_array($cu);

另一个:

$select2 = mysql_query("SELECT * FROM `users` WHERE uname='$uname' && confirmation='confirmed'");

它正在工作..但只有一半。我的意思是,当未确认的用户尝试登录时,它会向他显示一个空白页面。没关系,因为我不希望未确认的用户登录。 但是......确认的用户仍然会在活动用户表中看到未经确认的用户..

就像桌子甚至不检查用户是否被确认,它只是向他显示。

所以我想到了一种方法,用户将移动到另一个名为“hold”的表,该表将由所有未确认的用户组成。然后,每个将验证其帐户的用户,sql将识别它,并且当确认列更改为“已确认”时,它将把用户移动到“用户”表,因此他的名字将出现在活动用户表中

我该怎么办?如果用户被确认,我如何“使”sql表自动识别,并将他移到另一个表..

或..如果有任何方法可以从活动用户表中“隐藏”未确认的用户,那也没关系。

非常感谢:)

2 个答案:

答案 0 :(得分:0)

基本上你需要设置一个cron来检查用户是否未被确认,然后移动到hold tabe或者在任何用户被确认时在mysql中写入一个触发器。

答案 1 :(得分:0)

您可以获取最后一个结果,并在最后一个结果后插入。

见这个例子:

$sql = mysql_query("
INSERT INTO tabel_name(col1, col2,col3) values('foo','bar','some'); 
INSERT INTO table_name2(col,col2) SELECT col2,col3 FROM tabel_name 
ORDER BY id DESC LIMIT 1;
");