如何自动保存其他表中的数据

问题描述:

我有一个问题,我需要帮助,有没有办法,如果我点击锁定按钮,表vote_logs上不存在的学生会自动放入其他表是unvoted_logs(table),。例如在学生表中有一个idno c120-115,它也被保存在表vote_logs我的问题是,如果投票是时间到了然后点击lock.php的按钮,我希望它会自动把学生记录没有存在于表vote_logsunvoted_logs中。需要一些帮助球员如何自动保存其他表中的数据

Sample of data structure

这里是我的lock.php:

<?php 
include '../connection/connect.php'; 
include '../dbcon.php'; 


$stat='lock'; 
$sqla = "UPDATE student SET status=?"; 

$qa = $db->prepare($sqla); 
$qa->execute(array($stat));  

//here is the part where I want to store the student who didn't exist in vote_logs 
$stud = mysql_query(" SELECT st.* FROM student st LEFT JOIN studentvotes sv ON st.idno = sv.idno AND st.syearid = sv.syearid 
WHERE sv.idno IS NULL AND st.syearid = '$no' AND user_type='3'") or die(mysql_error()); 

//should I put insert? don't what's next 

Header ('Location:lock_unlock.php'); 
?> 
+1

请向我们展示您尝试过的方法,并且可以请您尝试更好地设置您的问题的格式?真的很难理解你想要什么;) –

+1

你更喜欢纯PHP还是使用SQL存储过程? – FrozenFire

+0

如果您想要自动保存,如果在一个表上执行操作以便对另一个表执行操作,则考虑使用触发器。似乎是这里的情况。 –

我相信使用触发器是你的问题的最佳解决方案。请阅读这篇文章。

Using MySQL triggers to log all table changes to a secondary table

我只是把链接,因为那里是如何使互联网的注册与登录触发器的例子很多。

这是另一个建议,这可能是答案。使用

的mysqldump -u ... ... -p mydb的T1 T2 T3> mydb_tables.sql

无论是写在PHP或bash和在crontab中文件夹拖拽它,所以它会自动备份表。您还可以使用crontab -e来设置备份间隔。