簡體   English   中英

無法將記錄從一個表更新到另一個表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM