我在mysql中创建了一个数学函数。并给出两个结果,因为它是从2个记录计算的。这是来源:
$calculate= mysql_query("select markers_tujuan.lng,markers_tujuan.lat,open_list.lat, open_list.lng,
((SQRT((((markers_tujuan.lat-markers_tujuan.lng)*(markers_tujuan.lat-markers_tujuan.lng)) + ((open_list.lat-open_list.lng)*(open_list.lat-open_list.lng)))))+(sqrt((((markers_tujuan.lat-open_list.lat)*((markers_tujuan.lat-open_list.lat)))+((markers_tujuan.lng-open_list.lng)*((markers_tujuan.lng-open_list.lng)))))))
as hasil
from markers_tujuan, open_list");
$op=mysql_query("select * from open_list");
$line=mysql_fetch_assoc($op);
/* fetch associative array */
while ($row = mysql_fetch_assoc($calculate)) {
printf ("1(%s %s),(%s %s),%s <br> \n", $row["lng"], $row["lat"], $row["lat"], $row["lng"], $row["hasil"]);
$try=mysql_query(" UPDATE open_list SET hitung = '".$row["hasil"]."' ");
}
结果是
但我不明白为什么查询mysql更新相同的查询
答案 0 :(得分:1)
正如其他人所指出的,您的UPDATE语句没有WHERE条件。因此,每次更新表格中的每一行:
mysql_query(" UPDATE open_list SET hitung = '".$row["hasil"]."' ");
您应该在更新时指定PRIMARY KEY。在这种情况下,它是列id
(我推测)。例如:
UPDATE open_list SET hitung = 'example' WHERE id = '4'
答案 1 :(得分:0)
您应该在第一个查询中添加SELECT open_list.id,...
,在更新语句中添加WHERE id = ' . $row['id']
。