您好我有一个邮政编码数据库,其中包含邮政编码和lat和lon的详细信息,在另一个表中我有一个公司的邮政编码列表,并希望添加lat和lon的细节匹配邮编,而不是使用连接查询等。下面是我使用的代码,我曾经使用类似的东西,但我只是不能解决为什么这是行不通的。不能更新记录从一个表到另一个
$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():提供的参数不是在/home/visitrac/public_html/postcode.php一个有效的MySQL结果资源上线15
如果我移动闭括号,所以它是在更新之前,然后错误去,但没有信息进入数据库,我认为是因为它是在循环之外。我尝试了各种各样的东西,但似乎没有任何工作,所以任何推动正确的方向将不胜感激。
感谢
OP表示他不想使用联合 – AnandPhadke
@AnandPhadke:除非OP能够提出施加该限制的有效理由,否则这听起来不合理并导致更昂贵的更新过程。我相信我的回答是完成这项任务的更好方法。 –
对不起,我想我写错了,当我说不使用连接时,我的意思是将数据作为连接查询从数据库中取出,而不是更新公司数据。我从来没有想过使用联接作为更新,所以这是完美的谢谢你,并为此感到抱歉。 –