php - 无法将记录从一个表更新到另一个表

标签 php mysql

您好,我有一个邮政编码数据库,其中包含邮政编码以及纬度和经度详细信息,在另一个表中,我有一个包含邮政编码的公司列表,我想将纬度和经度详细信息添加到匹配的邮政编码中,而不是使用连接查询等. 下面是我正在使用的代码,我以前用过类似的东西,但我就是不明白为什么这不起作用。

$host    = "localhost";
$username = "";
$password = "";
$database = "";
mysql_connect( $host, $username, $password );
mysql_select_db( $database ) or die( "Unable to select database" );


$query = "SELECT * FROM postcodes";      
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){   



$postcode = $row['postcode'];   
$lat = $row['lat']; 
$lon = $row['lon']; 



$result = mysql_query("UPDATE companies SET lat ='$lat' and lng ='$lon'  
WHERE postal_code = '$postcode'") 
or die(mysql_error());  

}

我得到的错误是:警告:mysql_fetch_array():提供的参数不是第 15 行/home/visitrac/public_html/postcode.php 中的有效 MySQL 结果资源

如果我移动右括号使其在更新之前发生错误,但没有信息进入数据库,我认为这是因为它不在循环中。我已经尝试了各种各样的事情,但似乎没有任何效果,所以任何朝着正确方向的插入都将不胜感激。

谢谢

最佳答案

确实不需要遍历邮政编码结果。您可以在单个 SQL 语句中更新所有公司。

UPDATE companies c
    INNER JOIN postcodes p
        ON c.postal_code = p.postcode
    SET c.lat = p.lat,
        c.lng = p.lon

关于php - 无法将记录从一个表更新到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12915835/

相关文章:

php - 修改分页排序方法以更改每页的行数

mysql - 从两个表创建一个表,其中数据在一个表中的行中

mysql - SQL求和并显示总和值不存在的行

php - 从 URL 中删除 index.php 会导致 yii 出现 404

php - 从PHP中的变量中删除重复的字符串

php - Mysql 作为 PHP DSO

java - 将值插入 mysql 表所需的帮助

php - 如何在ZF2中对MySQL数据库表的特定属性设置条件?

php - 脚本在返回 header : php. fastcgi 之前超时

php - 将 utf8mb4 更改为 utf8