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