从多个数组插入相同的查询

时间:2014-06-16 14:22:42

标签: php mysql sql

我在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"]."' ");
    }

结果是 php running

但我不明白为什么查询mysql更新相同的查询

error query

2 个答案:

答案 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']