JSONデータ登録について

このQ&Aのポイント
  • JSONデータをMySQLに登録するためのPHPプログラムを作成する方法について解説します。
  • JSONデータの取得方法とMySQLへのデータ登録方法をまとめたPHPプログラムのサンプルコードを紹介します。
  • JSONデータを取得し、必要な情報を抽出してMySQLに登録するためのプログラムを作成する手順を説明します。
回答を見る
  • ベストアンサー

JSONデータ登録について

--------JSONデータ-------- {"vois":[ { "id" : "1FZ3P4ACUWBBC-2010061010321", "created_at" : "Thu Jun 10 01:32:13 +0000 2010", "text" : "つぶやきの本文", "user" : { "id" : "1FZ3P4ACUWBB", "screen_name" : "Becky", "profile_image_url" : "http://profile.img.mixi.jp/photo/user/1FZ3P4ACUWBBC_301280930.jpg", "url" : "http://mixi.jp/show_friend.pl?uid=1FZ3P4ACUWBB" }, "reply_count" : "3", "favorite_count" : "5" }, { "id" : "1FZ3P4ACUWBBC-2010061010322", "created_at" : "Thu Jun 10 02:32:13 +0000 2010", "text" : "つぶやきの本文2", "user" : { "id" : "1FZ3P4ACUWBa", "screen_name" : "ecky", "profile_image_url" : "http://profile.img.mixi.jp/photo/user/1FZ3P4ACUWBBC_301280931.jpg", "url" : "http://mixi.jp/show_friend.pl?uid=1FZ3P4ACUWBa" }, "reply_count" : "4", "favorite_count" : "5" } ] } 上記のJSONデータを取得した場合 MySQLに登録するPHPプログラムはどのようになるのでしょうか。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

http://jp2.php.net/json_decode JSONデータをPHPの配列に変換する関数がありますので、一度変換すれば良いです。 <?php $php_array = json_decode($json_array); ?>

関連するQ&A

  • JSONの種類について

    「JSON」の種類について教えてください。 下記データは、JSONでしょうか? もし、「JSON」だとしたら、「JSON」の中のどういう種類に該当するのでしょうか? また、もし「JSON」ではないとしたら、どうしたら「JSON」データになるのでしょうか? [{  "id": 1,  "user_id": 2,  "comment": "お天気",  "level": 2,  "created_at": "2011-03-02 12:54:46",  "modified": null }, {  "id": 2,  "user_id": 3,  "comment": "お菓子",  "level": 4,  "created_at": "2011-05-03 15:28:44",  "modified": null }, {  "id": 33,  "user_id": 4,  "comment": "お手",  "level": 3,  "created_at": "2011-06-30 04:37:36",  "modified": null }]

  • Java json gson(google)

    拝見して戴きまして有難うございます.今の状況を(1)~(5)にまとめました. (1) URL(http://zip.ricollab.jp/search?q=3130041&type=json)から    JSONデータを取って来きてjsonDataという変数に格納したとする. (2) Javaのgson(JSONを処理しやすくするためのクラス群)を用いているとする. (3) Userという名称のクラスを作り以下記述で受け取りたい User user = new User(); user = gson.fromJson(jsonData.toString(),User.class); (4) JSONデータは(1)のURLの時以下である. { "query": "3130041", "totalResults": 1, "itemsPerPage": 10, "result": [ { "zipcode": "3130041", "address": "茨城県常陸太田市稲木町", "lin k": "http://zip.ricollab.jp/3130041" } ]} (5) (1)~(4)の状況を抱えている状態なのですが,ここでJSONデータのresultが配列になっています.Userクラスを以下のように定義するとその手前まで全て受け取れます.しかしこの後,resultはどうすれば受け取れますか?HashMap<String, String> result;のような連想配列かな?とか思ったのですが・・・上手く出来ず困っています.分かる方お願いします. class User { String query; String totalResults; String itemsPerPage; }

    • ベストアンサー
    • Java
  • twitterAPIを利用してツイート一覧を取得

    <?php //twitteroauth.phpを読み込み require_once dirname(__FILE__) .'/twitteroauth.php'; //検索ワード配列 $keyword_list = array("OKWave","yahoo知恵袋"); //最大検索数 $countmax = 10; //twitterAppsで取得 $consumerKey = '*****'; $consumerSecret = '*****'; $accessToken = '*****'; $accessTokenSecret = '*****'; $to = new TwitterOAuth( $consumerKey, $consumerSecret, $accessToken, $accessTokenSecret ); //Twitterで検索するワード //複数の場合はORかANDを使う $key = ""; $size = count($keyword_list); for($i=0;$i<$size;$i++){ $keyword = $keyword_list[$i]; $key .= $keyword; if($i<$size-1){ $key .= " AND "; } } //オプション設定 //countmaxは最大検索数 $options = array('q'=>$key,'count'=>$countmax,'lang'=>'ja'); //検索 $json = $to->OAuthRequest( 'https://api.twitter.com/1.1/search/tweets.json', 'GET', $options ); $jset = json_decode($json, true); //tweetidを取得 foreach ($jset['statuses'] as $result) { //ローマ字の名前 $screen_name = $result['user']['screen_name']; //ユーザーID(数字) $id = $result['user']['id']; //ユーザー名 $name = $result['user']['name']; //ユーザーアイコン画像URL $link = $result['user']['profile_image_url']; //該当ツイート $content = $result['text']; //更新日 $updated = $result['created_at']; $time = date("Y-m-d H:i:s",strtotime($updated)); //不明なものはprint_rで見ればいい //print_r($result); echo "<img src='".$link."''>"." | ".$screen_name." | ".$id." | ".$name." | ".$content." | ".$time." "; } ?> このコードで特定のワードを含んだツイートを取得して【並び替えてから】表示したいのですが、並び替えがうまくできません。 ランダムや新着順、リツイート順などで並び替えることは可能でしょうか。 可能であれば、並び替えの為に必要なコードを教えていただけませんか。

    • ベストアンサー
    • PHP
  • 複数のjsonファイルを「もっと見る」ボタンで出力

    プログラム初心者です。 Instagramからハッシュタグで画像を抽出し、「もっと見る」ボタンで少しずつHTMLに出力したいです。 ↓こちらのブログを参考にさせていただき、Instagramの画像をHTMLに出力するところまで、何とか辿り着きました。 http://blog.hello-world.jp.net/php/2777/ <script> $(function() { $.ajax({ url: "json/1.json", dataType: "json", error: function(jqXHR, textStatus, errorThrown) { $("#content").text(textStatus); }, success: function(data) { var dataArray = data; $.each(dataArray, function(i){ $("#content").append("<div><p id='" + dataArray[i].id + "'><a href='" + dataArray[i].link + "' target='_blank'><img src='" + dataArray[i].image_url + "'></a></p></div>"); }); } }); }); </script> この状態だと1枚目のjsonしか読み込んでいないので、2枚目以降のファイルも2.json、3.json…「もっと見る」ボタンで取得するようにしたいのですが、知識が足りず。。。 ↓こちらのサイトのように、スクロールで表示させるものでも良いのですが。 http://nekostagram.com/ 詳しい方、ご協力いただけるとありがたいです。 どうぞよろしくお願いいたします。m(__)m

  • MySqlに登録したデータを更新すると文字化けする

    PHP5.2 MySql5.1.34 文字コードSJIS MySqlに登録したデータを更新すると文字化けします。 回答をよろしくお願い致します。 // MySQLのクライアントの文字コードをsjisに設定 mysql_query("SET NAMES 'sjis'") or die("can not SET NAMES sjis"); // データを取り出す $sql = "SELECT created_at, mes, url FROM message WHERE (id = ".$_POST["id"].");"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); $row = mysql_fetch_array($res, MYSQL_ASSOC); // 取り出したデータを表示する print "<form action=koushin.php method=post accept-charset=\"Shift_JIS\">"; print "日付:<input type=text size=30 name=created_at value=" . $row["created_at"] . "> "; print("<br>"); print("<br>"); print "メッセージ:<input type=text size=50 name=mes value=" . $row["mes"] . "> "; print("<br>"); print("<br>"); print "URL:<input type=text size=80 name=url value=" . $row["url"] . "> "; print "<input type=hidden name=id value=" .$_POST["id"]. ">"; print("<br>"); print("<br>"); print "<input type=submit value=更新>"; print("<br>"); print("<br>"); print "</form>"; koushin.php <?php $sv = "サーバ"; $dbname = "データベース"; $user = "ユーザー"; $pass = "パスワード"; $conn = mysql_connect($sv, $user, $pass) or die("接続エラー"); mysql_select_db($dbname) or die("接続エラー"); $id = $_POST["id"]; $created_at = $_POST["created_at"]; $mes = $_POST["mes"]; $url = $_POST["url"]; $sql = "UPDATE message SET updated_at = now() , created_at = '{$created_at}' , mes = '{$mes}' , url = '{$url}' WHERE id = $id"; $res = mysql_query($sql, $conn) or die("更新エラー"); mysql_close($conn); ?>

    • ベストアンサー
    • MySQL
  • Group By と重複について

    ポイントテーブルのPoint.createdをGroupByして 日付毎のPoint.user_idをcountして出しました。 しかし、集計の期間内で重複しないPoint.user_idを countしなければいけなくなったのですが 日付でGroupByした結果から期間内の重複Point.user_idを省いた countは1クエリで可能でしょうか? ヒントでかまわないのでお助け願います。

  • kimonoで取得したjsonファイルの出力

    kimonoで取得したjsonファイルの出力 以下のサイトを使用してスクレイピングしたjsonファイルをphpで表示させようとしたのですが、何も表示されません。助言をお願いします。 http://www.kimonolabs.com/ //jsonファイル { "name": "kokunai", "results": { "collection1": [ { "info": "【運航概況】\n本日4日および明日5日の運航状況は、以下のとおりです。" } ] } } //php記述 <?php $request = "http://www.kimonolabs.com/api/kimonoユーザID?apikey=APIキー"//URLの中身は上記jsonファイルと同一 $response = file_get_contents($request); $results = json_decode($response, TRUE); echo $results['results']['collection1'][info]; ?>

    • ベストアンサー
    • PHP
  • mixiの登録確認について

    初めまして。 この度mixiを利用することになったのですが、 まず、携帯・PCにメールが送られますよね? そしてPCでURLをクリックし、 携帯に届いたURLをクリックすると、 ユーザーID送信というページが出てきます。 その時、何のIDを入力すればいいんでしょうか。 ちなみに携帯はドコモです。 返答お待ちしております。

  • RDBのデータ構造について

    RDBに関する質問です。以下のURLのページを見てRDBを使用した場合、 どういうデータ構造になっていますか?(テーブル・ リレーション関係) https://goosa.net/item/GS1900660/top 自分は以下のような構造になっていると考えましたが、合っていますか? ・user table(ユーザーテーブル) id user_name tel phone ・product table(商品テーブル)  product_id  product_name  price  img ・user_favorite table(お気に入りテーブル)  id  user_id = user.id(1対1)  product_name  product_id

  • こんな・・・

    こんな風な文字画像 http://id30.fm-p.jp/album/pub_view.php?dir=33&uid=sweet7smil&target=1&pub_num=0&user=0 を作りたいのですが、どうやったらいいのでしょうか?? 教えてください!!

専門家に質問してみよう