вставка одного и того же запроса из нескольких массивов

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

и результат
php запущен

но я не понял, почему запрос в 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'] в предложение обновления.