2017-09-29 11 views
0

私はAndroidのアプリに渡したいと思う、合計250の国のmysqlデータベースを持っています。私はその間にPHPを使用してJSONに結果を解析する必要があることを知っています。JSON変換でデータの半分が失われましたか?

<?php 

require_once('connection.php'); 
$response = array(); 
$resultarray = array(); 
$result = mysqli_query($con, "SELECT * FROM countries"); 

if (!empty($result)) { 
    // check for empty result 
    while ($row=mysqli_fetch_assoc($result)) { 
     print $row; 
     $resultarray = mysqli_fetch_array($result); 
     $Laender = array(); 
     $Countries[de] = $resultarray["de"]; 
     $response["Countries"] = array(); 

    array_push($response["Countries"], $Countries); 

    echo json_encode($response); 
    } 
}  

?> 

私のブラウザでスクリプトを実行したところ、国の半分が欠落していることを除いて正しく表示されました。わずか125カ国しか表示されていません。彼らはどこに消えたのですか?

+0

あなたは 'mysqli_fetch_assoc' __and__' mysqli_fetch_array'呼ぶのですかなぜ:

mysqli_fetch_arrayコールを取り除きますか? –

+0

私はまだPHPに新しいですし、いくつかのテストの後で私は違いに気付かなかった。スクリプト全体は、基本的には私が様々なチュートリアルからまとめたものです。おそらくそれは問題ではないでしょうか? –

+1

ここではAndroidとの関係はありません。 –

答えて

2

どちらの関数mysqli_fetch_assocmysqli_fetch_array同じことを行う - 彼らはレコードを取得します。だから、

、ごwhileにあなたがmysqli_fetch_assoc最初レコードをフェッチし、その後すぐにmysqli_fetch_arrayレコードを取得します。したがって、最初のレコードが失われます。そして、これは毎に発生するため、レコードの半分が失われます。

$response["Countries"] = array(); 
while ($row = mysqli_fetch_assoc($result)) { 
    array_push($response["Countries"], $row["de"]); 
} 
echo json_encode($response); 
関連する問題