PHPで配列データを.jsonファイルに保存しています。 .jsonファイルは、JSによって別の場所で呼び出され、変数に入れられます。ここで ファイルにJSONを保存し、出力が存在する場合は変更する
は、PHPのコードです:ファイルが&を存在する場合$fetch = mysqli_query($connection, "SELECT * FROM mrb_prprty WHERE `nationalid` = '". $nationalid ."' AND `author` = '" .$username. "'");
$return_arr = array();
while ($row = mysqli_fetch_array($fetch)) {
$row_array['firstName'] = $row['fname'];
$row_array['lastName'] = $row['lname'];
$row_array['nationality'] = $row['nationality'];
$row_array['phone'] = $row['mobile'];
$row_array['email'] = $row['email'];
$row_array['street'] = $row['street'];
$row_array['towncity'] = $row['towncity'];
$row_array['postcode']= $row['postcode'];
$row_array['county'] = $row['county'];
$row_array['country'] = $row['country'];
$row_array['rentpw'] = $row['rentpw'];
$row_array['nationalid'] = $row['nationalid'];
$row_array['passport'] = $row['passport'];
$row_array['isFavorite'] = $row['favourite'];
array_push($return_arr,$row_array);
}
$json_mrb = json_encode($return_arr);
$myFile = "userdata/". $username .".json";
$method = (file_exists($myFile)) ? 'a' : 'w';
$fh = fopen($myFile,$method);
fwrite($fh, $json_mrb."\n");
これが初めて実行され、それが新しいファイルを作成したり、その結果に応じて、既存のものに追加のいずれかを検出します。ここで
は初めて上記のPHPコードを実行した後に「.json」ファイルのプレビューです:[{"firstName":"Ryan","lastName":"Butterworth","nationality":"rKqF01JNdAB1\/EjPW1sulcHzA+Lqp3y\/aaNtpixFphA=","phone":"6jAbOoIal2Eh73neklZgXcA2jJ3831uRiJWE74fADD8=","email":"gpLkiFg4ju4jv4QK6nftnPCqmzdENbsDt4ayI4L1rrkXvg0VJkxmP9Ac57fs4Ar\/","street":"22 Newton Drive","towncity":"Blackpool","postcode":"FY38BS","county":"England","country":"England","rentpw":"VCXaMj\/V6YNExbREuI08eOuINutZRxcx4vv5s2C2FR4=","nationalid":"dNDgHnJJg4rFgbb6qOEC\/dVlnJUNWLCZASo9X8GP5EE=","passport":"123456","isFavorite":""}]
私が持っている問題は、あなたが二度目のPHPコードを実行すると、 .jsonファイルは、次のようになります。
[{"firstName":"Ryan","lastName":"Butterworth","nationality":"rKqF01JNdAB1\/EjPW1sulcHzA+Lqp3y\/aaNtpixFphA=","phone":"6jAbOoIal2Eh73neklZgXcA2jJ3831uRiJWE74fADD8=","email":"gpLkiFg4ju4jv4QK6nftnPCqmzdENbsDt4ayI4L1rrkXvg0VJkxmP9Ac57fs4Ar\/","street":"22 Newton Drive","towncity":"Blackpool","postcode":"FY38BS","county":"England","country":"England","rentpw":"VCXaMj\/V6YNExbREuI08eOuINutZRxcx4vv5s2C2FR4=","nationalid":"dNDgHnJJg4rFgbb6qOEC\/dVlnJUNWLCZASo9X8GP5EE=","passport":"123456","isFavorite":""}]
[{"firstName":"Ryan","lastName":"Butterworth","nationality":"rKqF01JNdAB1\/EjPW1sulcHzA+Lqp3y\/aaNtpixFphA=","phone":"6jAbOoIal2Eh73neklZgXcA2jJ3831uRiJWE74fADD8=","email":"gpLkiFg4ju4jv4QK6nftnPCqmzdENbsDt4ayI4L1rrkXvg0VJkxmP9Ac57fs4Ar\/","street":"22 Newton Drive","towncity":"Blackpool","postcode":"FY38BS","county":"England","country":"England","rentpw":"VCXaMj\/V6YNExbREuI08eOuINutZRxcx4vv5s2C2FR4=","nationalid":"dNDgHnJJg4rFgbb6qOEC\/dVlnJUNWLCZASo9X8GP5EE=","passport":"123456","isFavorite":""}]
Javascriptが同じように、変数として「.json」ファイルをロードします。var contacts = //fileoutputhere
ていますが、.jsonファイルを見ることができるようにそれが実行されるようになりました2つの配列のリストを持っていますエラーになります。
代わりに、このようなファイルに保存するので: [{ ...info... }] [{ ...info... }]
私はそれがこのように保存したい: [{ ...info... },{ ...info... }]
私は必ず何らかの方法でPHPを微調整する必要がありますが、ではないでしょうね私はこれをどうやってできるのか。助言がありますか?
既存のファイルにJSONを追加することはできません。ファイルの内容をロードし、変数にデコードし、新しいデータを追加し、エンコードして古いファイルを上書きして保存する必要があります。 – fusion3k
申し訳ありませんJSON形式の作業には初めてですが、これを実現するための基本的な例を教えてください。注:ここでの全ては、期待通りに動作します(もちろん、JS変数とは別にファイル内の2つの配列に分割されています)。大括弧を削除し、ファイルを検出するとカンマを追加する方法があると思っていました存在するので、それはすべて1つの配列にあります –
ファイルを最初に変数に読み込み、その変数の配列に新しいデータを追加してから、そのファイルをデコードして保存する必要があります(前のファイルを上書きします) –