2

mysql データベースから JSON ファイルを作成するための php コードを作成しました。JSON ファイルを確認すると、データベースには NULL データがありませんが、一部のデータが NULL と表示されます。これが私の PHP コードです。

$selectQuery = "SELECT tour_code, day, schedule_title, details FROM tbl_tour_details WHERE status=0";
    $response = array();
    $posts = array();
    $result = mysql_query($selectQuery) or die ("Errored Query: ".$selectQuery);
    if(mysql_num_rows($result))
    {
        while($row = mysql_fetch_assoc($result))
        {
            $tour_code = $row['tour_code'];
            $day = $row['day'];
            $schedule_title = $row['schedule_title'];
            $details = $row['details'];

            $posts[] = array('tour_code'=>$tour_code, 'day'=>$day, 'schedule_title'=>$schedule_title, 'details'=>$details);

        }
    }
    $response['posts'] = $posts;
    $fp = fopen('..//webservices//json//tour_details.json','w');
    fwrite($fp, json_encode($response));
    fclose($fp);

ここで、DATATYPE と Size は次のとおりです。

tour_code = int
day = int
schedule_title = varchar(150)
details = text

私のデータは次のようになります。

tour_code =1
day = 3
schedule_title = "Singapore – Genting Highland By Coach (350 KM 5 HRS)"
details = "This Morning Is The Day Of FUN And Adventure For The Family. Enjoy Spectular Rides And Shows At The Ever-Popular Genting Outdoor Theme Park With Its Myriad Attractions For The Young And Old Alike. Take An Exciting Drive In The Antique Car Or Daring Spins On The Roller Coaster, It’s A Magical Adventure Of Fun And Excitement For The Whole Family!
Over Night At Hotel First World Deluxe Or Theme Park Or Awana Resort Or Similar.
(Breakfast, Lunch & Dinner)"

これが私のjsonファイルです(null、/r、/nの場合に構成されます): jsonファイル

これが私のvar_dumpファイルです(一部のデータを「...」として切り捨てます) var_dumpファイル

これが私のprint_r($posts)ファイルです(これは完全に正しいです) print_r($posts file:)

4

3 に答える 3

3

utf-8 データが破損しています

クイックフィックス:

$details = iconv("UTF-8", "UTF-8//IGNORE", $row['details']);
于 2013-01-02T08:42:01.560 に答える
1

ブラウザーで配列を印刷し、ctrl+u を押してページのソースを表示してください。配列全体が適切な形式で値とともに印刷され、null 値があるかどうかが確認されます...

while($row = mysql_fetch_assoc($result))
        {
            print_r($row);
        }

上記のコードが、少なくとも問題の場所を見つけるのに役立つことを願っています.....

于 2013-01-02T06:23:26.177 に答える
0

まず、var_dump($response);直前に実行して、実際に正しいデータを取得しているfopenことを確認してください。$response

第二に、あなたのファイル名は私には正しく見えません。二重スラッシュ(/)とは何ですか?\バックスラッシュはエスケープ文字であるため、バックスラッシュ()をエスケープするだけで済みます

この行を変更します。

$fp = fopen('..//webservices//json//tour_details.json','w');

これに:

$fp = fopen('../webservices/json/tour_details.json', 'w');

これはうまくいく可能性がありますが、コメントを付けるだけでなく、さらに調査することができます。

于 2013-01-02T06:15:41.743 に答える