#php #mysql #sql
#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"]."' ");
}
и результат
но я не понял, почему запрос в mysql обновляет тот же запрос
Комментарии:
1. вам нужно условие where, чтобы указать, какую строку обновлять?
2. у вас нет WHERE в инструкции update, поэтому он обновляет каждую строку.
3. кто-нибудь может рассказать мне код
Ответ №1:
Как указывали другие, в вашем операторе UPDATE нет условия WHERE . Таким образом, каждая отдельная строка в вашей таблице будет обновляться каждый раз:
mysql_query(" UPDATE open_list SET hitung = '".$row["hasil"]."' ");
При обновлении необходимо указать ПЕРВИЧНЫЙ КЛЮЧ. В данном случае это столбец id
(я полагаю). Пример:
UPDATE open_list SET hitung = 'example' WHERE id = '4'
Комментарии:
1. Добавьте
open_list.id
в список полей для вашего запроса SELECT. Затем попробуйте использовать:mysql_query(" UPDATE open_list SET hitung = '".$row["hasil"]."' WHERE id = '" . $row['id'] . "'");
2. Я пытался это сделать, но получаю ошибку: неопределенный индекс: идентификатор в $try=mysql_query(» UPDATE open_list SET hitung = ‘».$row[«hasil»].»‘ ГДЕ id = ‘» . $ row [‘id’] . «‘»);
3. @hot_programmer Вы не добавили
open_list.id
в свой список полей в запросе ВЫБОРА.4. что-то вроде этого, верно? $op=mysql_query(«выбрать open_list.id из open_list»); . Я сделал это и получил это сообщение об ошибке
5. Нет, вам нужно будет добавить его к первому запросу в вашем коде выше.
Ответ №2:
Вы должны добавить SELECT open_list.id,...
в свой первый запрос и WHERE id = ' . $row['id']
в предложение обновления.