infos en double dans un JSON
Bonjour,
J'ai un script qui me fait une requête sur une base de données (Postgres), et qui me renvoie le résultat dans une variable JSON :
Code:
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
| $connect_string = 'host='.$HYDRO_SERVER.' port='.$HYDRO_PORT.' dbname='.$HYDRO_BASE.
' user='.$HYDRO_USER.' password='.$HYDRO_PASSWORD;
$base = pg_connect($connect_string);
if (!$base) {
$msg = 'Erreur connection !'.pg_last_error($connect_string);
$json = array("success" => false, "msg" => $msg);
}
else {
$sql = 'SELECT nav_id, nav_name FROM navires';
$res = pg_query($sql);
if (!$res) {
$msg = 'Erreur d\'execution de la requête : '.$sql;
$json = array("success" => false, "msg" => $msg);
}
else {
if (pg_num_rows($res) == 0) {
$msg = 'Aucun enregistrement ne correspond à la requête !';
$json = array("success" => true, "res" => $msg);
}
else {
$list = array();
while ($data = pg_fetch_array($res)) {
array_push($list, $data);
}
$json = array("success" => true, "res" => $list);
}
pg_free_result($res);
}
pg_close($base);
} // fin else
echo json_encode($json); |
Le problème, c'est que dans le JSON crée, j'ai les infos résultats en double :
Code:
{"success":true,"res":[{"0":"1","nav_id":"1","1":"Pourquoi-pas?","nav_name":"Pourquoi-pas?"},{"0":"2","nav_id":"2","1":"Thalassa","nav_name":"Thalassa"},{"0":"3","nav_id":"3","1":"L'Atalante","nav_name":"L'Atalante"},{"0":"4","nav_id":"4","1":"Le Suro\u00eet","nav_name":"Le Suro\u00eet"},{"0":"5","nav_id":"5","1":"RRS Discovery","nav_name":"RRS Discovery"},{"0":"6","nav_id":"6","1":"R\/V Knorr","nav_name":"R\/V Knorr"},{"0":"7","nav_id":"7","1":"M\/V Arquipelago","nav_name":"M\/V Arquipelago"},{"0":"8","nav_id":"8","1":"NRP Almirante Gago Coutinho","nav_name":"NRP Almirante Gago Coutinho"}]}
A chaque fois, les variables sont mentionnées avec un code 0, 1, et avec le nom de la variable issue de la base de données. Pourquoi ?
Comment modifier le script en conséquence ?
Merci,
Nico