在PHP中将添加的信息从一个mysql表复制到另一个mysql表

时间:2013-01-28 12:09:42

标签: php mysql

我在不同的mysql数据库中有两个表。

我想从表A复制到表B.只有一种方法。 我需要从表B中读取最后一个日期时间,然后检查在此readed datetime之后是否有任何数据添加到表A.如果添加了一些数据,则复制它。

我试过了:

如果我刷新页面,它会写一行,但我需要它在一次加载中写入所有内容!

do
   {

#TABLE A    
$querylastA = "SELECT * FROM `stock` ORDER BY `jrk` DESC LIMIT 1";
$resultlastA = mysql_query($querylastA) or die(mysql_error());
while($rows=mysql_fetch_array($resultlastA)){
$lastcodeA = $rows['datetime'];
}

#TABLE B
$querylastB = "SELECT * FROM `stockcopy` ORDER BY `jrk` DESC LIMIT 1";
$resultlastB = mysql_query($querylastB) or die(mysql_error());
while($rows=mysql_fetch_array($resultlastB)){
$lastcodeB = $rows['datetime'];
}

#TABLE A - NEXT DATE AFTER LAST DATE IN TABLE B
$querynextA = "SELECT datetime FROM stock WHERE datetime > '$lastcodeB' ORDER BY datetime ASC LIMIT 1";
$resultnextA = mysql_query($querynextA) or die(mysql_error());
while($rows=mysql_fetch_array($resultnextA)){
$nextcodeA = $rows['datetime'];
}


   mysql_query("INSERT INTO stockcopy(datetime, data1, data2) SELECT datetime, data1, data2 FROM stock WHERE datetime = '$nextcodeA'");
   echo "Date from table A " . $lastcodeA . "<br>";
   echo "Date from table B " . $lastcodeB . "<br>";
   }
 while ('$lastcodeA' == '$lastcodeB');

3 个答案:

答案 0 :(得分:1)

您可以使用SELECT语句在表格中插入数据,因此您需要做的只是将条件放在SELECT中。

例如:

INSERT INTO table_example(foo, bar)
SELECT foo, bar FROM table_example2
WHERE time_condition > {SOME DATE}

这将向table_example插入SELECT语句返回的行,这些行是满足时间条件的行。您需要将{SOME DATE}替换为实际日期(不带括号)。

另请参阅:INSERT with SELECT

还有:Select columns across different databases

答案 1 :(得分:0)

你可以在很少或根本不知道SQL的情况下做到这一点,但有一点创造力:)

创建一个临时表(table_c),并在那里复制table_a的内容。

然后手动(这意味着在phpmyadmim中运行删除查询)删除不再重要的信息(例如DELETE FROM table_c WHERE id < 1000)。

然后,从table_c导出信息并将其导入table_b(并删除table_c

答案 2 :(得分:0)

问题在于:while ('$lastcodeA' == '$lastcodeB');

将其更改为:while ($lastcodeA != $lastcodeB);现在可以使用了!谢谢大家:))