2017-07-12 4 views
-2

私は怒鳴るこのコードを持っている:マニュアルjson_encode構文エラー

だから、
$db = mysqli_connect("localhost", "root", "", "vieuxparis1"); 
$mn = mysqli_query($db, 'SELECT * FROM paris'); 
$jsonval = array(); 
while($get = mysqli_fetch_assoc($mn)): 
$json = array(); 
$json["id"] = $get["ID"]; 
$json["picture"] = $get["picture"]; 
$json["name"] = $get["name"]; 
$json["category"] = $get["category"]; 
$json["address"] = $get["adress"]; 
$json["about"] = $get["about"]; 
$json["location"]=array(
    "latitude" => $get["latitude"], 
    "longitude" => $get["longitude"] 
     ); 
$json["tags"]=array(
    "in", 
    "aliqua", 
    "voluptate" 
); 
$json["openings"]=array(
    "monday" => "10:00 - 22:00", 
    "tuesday"=> "09:00 - 21:00", 
    "wednesday"=> "09:00 - 21:00", 
    "thursday"=> "09:00 - 21:00", 
    "friday"=> "09:00 - 21:00", 
    "saturday"=> "09:00 - 21:00", 
    "sunday"=> "closed" 
); 
array_push($jsonval,$json); 
endwhile; 

を私はエコーたときに、私は2回、 "緯度" 及び "経度" で、これを得た:

"about":"Ceci est un quartier parisien","latitude":"48.8405818","longitude":"2.286173299999973","location":["48.8405818","2.286173299999973"], 

そしてI正確にこれが欲しい:

"about": "Ceci est un quartier parisien", 
"location": {"latitude": "48.861001", 
      "longitude": "2.335876" 
      }, 

あなたは私のコードを書くべきではない知っていますか?

+1

https://stackoverflow.com/help/how-to-ask – parveen

+0

json_encodeの構文エラーは何ですか? –

+1

私は、そのコードが出力していると言う出力をどのように生成するのか分かりません – RiggsFolly

答えて

2

誤った方法でアレイを構築しています。

$json = array(
$json["latitude"] = $get["latitude"] 
) 

「=>」の表記を連想キーを設定する正しい方法:

$array = array(
    'key' => 'value' 
); 

// or 

$array['key'] = 'value'; 

てみてください:

あなたが連想キーを設定していない、「単なる」の割り当てです
$json["about"] = $get["about"]; 
$json["location"]=array(
    "latitude" => $get["latitude"], 
    "longitude" => $get["longitude"] 
); 
+2

提案は問題を解決しますが、OPと今後の読者が元のコードの何が間違っているのか、そしてあなたの提案が問題をどのように修正するのかを説明することは役に立ちます。 – axiac

+0

私の投稿を編集します –

1

あなたは=ASSIGNMENT operator

配列表記 =>を使用する必要はありません0
$json["location"]=array(
    "latitude" => $get["latitude"], 
    "longitude" => $get["longitude"] 
);