Таблица обновлений php массива bind_param после цикла

0

У меня есть этот код

$sql="INSERT INTO cerca_strutture (id, struttura, indirizzo, lat, lng, distanza)
SELECT id, struttura, indirizzo, lat, lng, P1AP_NOME 
FROM lista";
$query = $db->query($sql);


$lat1="39.3048001";
$lng1="16.2523086";

$sql= "SELECT * FROM cerca_strutture";
$query = $db->query($sql);
while($row = $query->fetch_assoc()) {
$id=$row['id'];
$lat_struttura=$row['lat'];
$lng_struttura=$row['lng'];

$url = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=$lat1,$lng1&destinations=$lat_struttura,$lng_struttura&mode=driving&language=it-IT&sensor=false";
$data = @file_get_contents($url); 
$result = json_decode($data, true);


foreach($result['rows'] as $distance) {
$distanza=$distance['elements'][0]['distance']['text'];
}

Я хотел бы обновить таблицу cerca_strutture с помощью этого нового значения $ distanza

Поэтому я делаю это, пока этот код

 $sql2 = 'UPDATE lista SET 'distanza' = ? WHERE id = ?';
 $update = $db->prepare($sql2);
  $update->bind_param('di', $distance, $id);
 $update->execute();

Но результат

Fatal error: Call to a member function bind_param() on a non-object in....

Теги:
sql-update
bind

2 ответа

0
Лучший ответ

Учитывая, что вы сказали, что хотите обновить таблицу, выполните таблицу cerca_strutture. Вам нужно будет написать свой код, как это

$sql2 = 'UPDATE table cerca_strutture SET distanza = :diz WHERE id = :id';
$update = $db->prepare($sql2);

//bind the two parameters separately for better readablity
$update->bind_Param(':diz', $distance);
$update->bind_Param(':id', $id);

$update->execute();
0

Мне нужно задать несколько вопросов, чтобы дать правильный ответ в коде, в котором вы делаете,

foreach($result['rows'] as $distance) {
$distanza=$distance['elements'][0]['distance']['text'];
}

Что вы пытаетесь достичь там?

  • 0
    Мне нужен этот результат для ex 54 км ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню