1

こんにちは、郵便番号と緯度と経度の詳細を含む郵便番号データベースがあります。別のテーブルには、郵便番号を持つ会社のリストがあり、結合クエリなどを使用するのではなく、一致する郵便番号に緯度と経度の詳細を追加したいと考えています。以下は次のとおりです。私が使用しているコードは、以前に似たようなものを使用したことがありますが、なぜこれが機能しないのかわかりません。

$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());  

}

私が得ているエラー:

クローズドブラケットを移動して更新前にすると、エラーが発生しますが、データベースに情報が取得されません。これは、ループから外れているためだと思います。私はあらゆる種類のことを試しましたが、何もうまくいかないようです.正しい方向への微調整は大歓迎です.

ありがとう

4

2 に答える 2

0

これを試して:

"UPDATE companies SET lat ='"+$lat+"' and lng ='"+$lon+"'   
 WHERE postal_code = '"+$postcode+"'"
于 2012-10-16T13:35:06.423 に答える
0

郵便番号の結果をループする必要はまったくありません。単一の SQL ステートメントですべての会社を更新できます。

UPDATE companies c
    INNER JOIN postcodes p
        ON c.postal_code = p.postcode
    SET c.lat = p.lat,
        c.lng = p.lon
于 2012-10-16T13:35:44.540 に答える