将mysql_query()的结果插入到同一个数据库中

时间:2010-11-09 14:07:33

标签: php mysql

还在学习PHP。我只是打了一块砖,需要一些快速的帮助。从来没有处理过这个。我有下面的PHP代码:我只需要自动化一个过程。我的目的是从保留表中选择数据,对其进行一些操作,然后将数据插入到同一数据库中的永久表中。因此,用户可以单击超链接,脚本会为他执行此操作。我的问题是如何利用下面的PHP脚本中的第一个查询的结果,因此你将在下面的jargons的结果。如果您了解我,我该如何插入?感谢

<?php
include 'db.inc.php';
$sql =  "SELECT nmea, rmc_time, signal, ROUND((FLOOR(latitude/ 100) + (latitude - 100   * FLOOR(latitude/ 100)) / 60), 5), north, ROUND((FLOOR(longitude / 100) + (longitude - 100 * FLOOR(longitude / 100)) / 60), 5), east, speed, track_angle, str_to_date( rmc_date, '%d%m%y' ) FROM server_imports";

$result = mysql_query($sql, $link);
 if (!$result) {
  die("Query to convert and insert failed");
 }
 while ($row = mysql_fetch_assoc($result)){
  mysql_query("INSERT INTO server_main(server_nmea, server_rmc_time, signal, server_latitude, north, server_longitude, east, speed, track_angle, server_rmc_date");

 }
 echo "Data conversion and insertion completed";
    ?>

3 个答案:

答案 0 :(得分:1)

您实际上可以一步完成所有操作:

INSERT INTO server_main(server_nmea, server_rmc_time, signal, 
  server_latitude, north, server_longitude, 
  east, speed, track_angle, server_rmc_date) 
SELECT nmea, rmc_time, signal, 
  ROUND((FLOOR(latitude/ 100) + (latitude - 100   * FLOOR(latitude/ 100)) / 60), 5),
  north, ROUND((FLOOR(longitude / 100) + (longitude - 100 * FLOOR(longitude / 100)) / 60), 5), 
  east, speed, track_angle, 
  str_to_date( rmc_date, '%d%m%y' ) 
FROM server_imports; 

答案 1 :(得分:0)

您可以轻松地将两者结合起来:

INSERT INTO server_main(server_nmea, server_rmc_time, signal, server_latitude, 
north, server_longitude, east, speed, track_angle, server_rmc_date)
SELECT nmea, rmc_time, signal, 
ROUND((FLOOR(latitude/ 100) + (latitude - 100   * FLOOR(latitude/ 100)) / 60), 5), north, 
ROUND((FLOOR(longitude / 100) + (longitude - 100 * FLOOR(longitude / 100)) / 60), 5), east,
speed, track_angle, str_to_date( rmc_date, '%d%m%y' ) 
FROM server_imports

答案 2 :(得分:0)

您可以在一个查询中执行此操作。只需INSERT您使用现有SELECT获得的行。

INSERT INTO [...] SELECT [...]

查看the docs了解详情。