2014-11-11 3 views
0

У меня есть этот кодbind_param таблица обновление массива PHP после цикла

$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 ....

ответ

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 km .. – cicciopasticcio

Смежные вопросы