Bonjour à tous,
J'ai un problème avec le résultat d'une requête dans un WHILE voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
error_reporting(E_ALL);		
 
@session_start();
require_once($_SESSION['fip']);
 
$query = "SELECT  * FROM `$GLOBALS[mysql_prefix]responder` ";	//	recherche la clé pour chaque responder
$result = mysql_query($query) or do_error($query, 'mysql query failed', mysql_error(), basename( __FILE__), __LINE__);
 
while ($row = mysql_fetch_array($result)) {
 
$key = $row['callsign']; // on affecte à la variable $Key la clé dur responder dans la boucle
 
if (!empty($key)) {   // si clé vide on saute
 
 
    $url = "http://www.insta-mapper.com/api/api_single.php?device_id={$key}";
			$data="";
			if (function_exists("curl_init")) {
				$ch = curl_init();
				curl_setopt($ch, CURLOPT_URL, $url);
				curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
				$data = curl_exec ($ch);
				curl_close ($ch);
				}
			else {				
				if ($fp = @fopen($url, "r")) {
					while (!feof($fp) && (strlen($data)<9000)) $data .= fgets($fp, 128);
					fclose($fp);
					}		
				else {
//				
					return FALSE;
					}
				}
 
    $nombre_debut=1;
    $nombre_fin=2;
    $longueur_chaine=strlen($data);
    $json = substr($data, $nombre_debut, $longueur_chaine-$nombre_fin);	
    $obj = json_decode($json);
    $device = $obj->{'device_id'};
    $nom = $obj->{'friendly_name'};
    $updated = $obj->{'datetime'};
    $timestamp = strtotime($updated);
    $lat = $obj->{'lat'};
    $lng = $obj->{'lng'};
    $speed = $obj->{'speed'};
    $alt = $obj->{'altitude'};
    $course = $obj->{'kph'};
    $data2 = $device . "," . $nom. "," .$timestamp. "," .$lat. "," .$lng. "," .$speed. "," .$alt. ",".$course;
 
    echo $data2; //  juste pour tester le resultat
 
//******************************** morceau qui ne fonctionne pas
 
 
    $query  = "INSERT INTO `$GLOBALS[mysql_prefix]tracks_hh` (`source`,`latitude`,`longitude`,`course`,`speed`,`altitude`,`utc_stamp`,`updated`,`from`)
							VALUES ('$device','$lat','$lng','$course','$speed','$alt','$timestamp','$updated','$course')";
 
    $result = mysql_query($query) or do_error($query, 'mysql_query() failed', mysql_error(),basename( __FILE__), __LINE__);	
 
		        $the_time = ($timestamp - date("Z") - (get_variable('delta_mins')*60));
				$now = mysql_format_date($the_time);		
				$query2 = "UPDATE `$GLOBALS[mysql_prefix]responder` SET `lat`= '$lat' ,	`lng`=	'$lng',	`updated` =  '$updated' 
					WHERE `callsign`= '$device' LIMIT 1 ";			
				$result2 = mysql_query($query2) or do_error($query2, 'mysql_query() failed', mysql_error(),basename( __FILE__), __LINE__);
 
 
 
//******************************** fin du morceau qui ne fonctionne pas *******************
}
else{
}
}
    ?>



Je n’obtiens que le premier résultat qui est bien importé dans la BD mais pas les autres pourquoi?

Merci pour votre aide