PHP 和 mySQL 问题我希望你能帮我解决。我有一个更新数据库选项(通过单击按钮,它会运行 update.php 文件),现在此 update.php 负责尝试分离我的 PASSENGER 表。
目前,我有一个巨大的 PASSENGER 表,如果今天发生业务旅行(这是一家旅行预订公司),那么它们就在 CUSTOMER 表中,但我想要任何已存档的客户(例如,任何从昨天向后移动,放入 ARCHIVED_CUSTOMER 表中。
现在,我有一个小型 PHP 脚本,它使用当前 PASSENGER 表中的信息添加到 ARCHIVED_PASSENGER 表中,但仅限参数为 PASSENGER ID 的情况。
我对脚本的 DELETE FROM PASSENGER 部分感到非常满意,但想知道是否有人知道允许我从数据库收集和移动大量信息的代码,其中旅行日期是昨天开始等。它是通过 PASSENGER 表的 activeUntil 部分完成的。
非常精简的 PHP 脚本,但希望我已经说清楚了!
mysql_connect("localhost", "mysql_username", "mysql_password") or die(mysql_error());
mysql_select_db("mysql_database") or die(mysql_error());
$query10 = ("SELECT p.surname, p.passNo, p.activeUntil FROM PASSENGER p WHERE passNo = '20120003'");
$result = mysql_query($query10);
while($row = mysql_fetch_array($result))
{
$surname = $row['surname'];
$passNo = $row['passNo'];
mysql_query("INSERT INTO ARCHIVED_PASSENGER (surname, passNo) VALUES ('$surname', '$passNo') ")
or die(mysql_error());
mysql_query("DELETE FROM PASSENGER (surname, passNo) VALUES ('$surname', '$passNo') ")
or die(mysql_error());
}
最佳答案
NOW()
MySQL 中给出当前时间戳。 24小时前是DATE_ADD(NOW(),INTERVAL -1 DAY)
.
您可以像比较数字一样比较日期:activeUntil < DATE_ADD(NOW(),INTERVAL -1 DAY)
选择 activeUntil
所在的行24 小时前发生过任何事情。
您可以组合INSERT
和SELECT
像这样:
INSERT INTO `archived_passenger` (columns.....) SELECT columns... FROM `passenger` WHERE ...
(如果 achived_passenger
中的列名称与 passenger
中的列名称完全匹配,则可以省略第一组列;如果要选择全部,则可以使用 *
代替第二组列列)
我认为这应该足以帮助您完成您想要做的事情。如果您需要任何其他帮助,请告诉我。
关于PHP 和 mySQL,使用当前日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10281986/