我有一个空列,我想更新值为PHP函数的行
<?php
function dystans1($lat1, $lon1, $lat2, $lon2) {
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$km = $dist * 60 * 1.1515*1.609344;
$unit = strtoupper($unit);
return $km;
}
$connection = @mysql_connect('localhost', '***', '***')
or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
$db = @mysql_select_db('****', $connection)
or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
$wynik = mysql_query("SELECT * FROM field_data_field_adres")
or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0) {
while($r = mysql_fetch_assoc($wynik)) {
$km = dystans1($r['field_adres_lat'], $r['field_adres_lng'], 52.40633, 16.91811);
echo $km;
mysql_query("UPDATE field_data_field_adres SET dystans = $km ");
}
}
?>
脚本向dystans插入相同的值。我想这样做,每一行都有另一个值
答案 0 :(得分:0)
您的更新功能缺少WHERE子句。这意味着对于循环中的每一行,它计算距离,然后将所有行更新为相同的值。您需要在更新表时添加一个使用类似ID列的WHERE子句,以便它只更新一行而不是所有行。
示例:
mysql_query("UPDATE field_data_field_adres SET dystans = $km WHERE id={$r['id']}");