[英]How to select and update records in one table by matching ids from it with another table?
[英]Can not update records from one table into another
嗨,我有一個郵政編碼數據庫,其中包含郵政編碼以及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():提供的參數不是第15行/home/visitrac/public_html/postcode.php中的有效MySQL結果資源。
如果我在更新之前移動了封閉的括號,則錯誤消失了,但是沒有信息進入數據庫,我認為這是因為它不在循環中。 我嘗試了各種方法,但似乎沒有任何效果,因此,朝正確方向推進的任何人都將受到贊賞。
謝謝
嘗試這個:
"UPDATE companies SET lat ='"+$lat+"' and lng ='"+$lon+"'
WHERE postal_code = '"+$postcode+"'"
確實沒有必要遍歷郵政編碼結果。 您可以在一個SQL語句中更新所有公司。
UPDATE companies c
INNER JOIN postcodes p
ON c.postal_code = p.postcode
SET c.lat = p.lat,
c.lng = p.lon
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.