前提・実現したいこと
MySQLのparticipating_athletesというテーブルに4つのレコードが入っています。
その4レコードをjson形式にしてオブジェクトをブラウザで表示したいのですが、$decoded_jsonの中身がquery文のオブジェクトになり表示されてしまいます。
参考にしたサイト:リンク内容:リンク内容
オブジェクトの1つのkeyの中身を取得表示する場合はアローで取得すると書いているのですが、複数のレコードを取得表示する場合はvar_dump($decoded_json)という表示のさせ方でできるように参考にしたサイトでは書かれているように思います。
私の認識が間違えていますでしょうか?ご教授よろしくお願い致します。
現在ブラウザに表示されているのは
var_dump($decoded_json)の中身を確認して表示されているものです。
下にoneというphpを書いてそちらではDBからレコードの取得までできているのは確認できています。
json.phpのブラウザ表示画面
C:\xampp\htdocs\PDO\json.php:24: object(stdClass)[3] public 'queryString' => string 'SELECT * FROM participating_athletes' (length=36)
該当のソースコード
json.php
<?php //変数の初期化 $athletes = null; $res = null; $dbh = null; $dsn = "mysql:dbname=mydb;host=localhost;charset=utf8mb4"; $user_name = "root"; $password = ""; $driver_options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]; try { //DBへ接続 $dbh = new PDO($dsn, $user_name, $password, $driver_options); //SQL作成 $participating_athlete = "SELECT * FROM participating_athletes"; //SQL実行 $athletes = $dbh->query($participating_athlete); //連想配列をJSONに変換 $json = json_encode($athletes , JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES ) ; //json形式に変換されている$jsonをオブジェクト型に変換する $decoded_json = json_decode($json); print(var_dump($decoded_json)); } catch (PDOException $e) { // エラーメッセージを表示させる echo ‘データベースにアクセスできません!’ . $e->getMessage(); // 強制終了 die(); } //接続を閉じる $dbh = null; ?>
試したこと
#####PDOに接続できているか確認しMySQLからレコードを取ってこれているか連想配列で確認したコード
one.php
<?php //変数の初期化 $athletes = null; $res = null; $dbh = null; $dsn = "mysql:dbname=mydb;host=localhost;charset=utf8mb4"; $user_name = "root"; $password = ""; $driver_options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]; try { //DBへ接続 $dbh = new PDO($dsn, $user_name, $password, $driver_options); //SQL作成 $participating_athlete = "SELECT * FROM participating_athletes"; //SQL実行 $athletes = $dbh->query($participating_athlete); //取得したデータを出力 foreach ($athletes as $athlete) { echo $athlete['id'].':'.$athlete['name'].':'.$athlete['race_name']; echo '<br>'; } } catch (PDOException $e) { // エラーメッセージを表示させる echo 'データベースにアクセスできません!' . $e->getMessage(); // 強制終了 die(); } //接続を閉じる $dbh = null; ?>
one.phpのブラウザでの表示画面
1:マリオ:キノコレース 3:ルイージ:キノコレース 4:クッパ:フラワーレース 5:ドンキー:スターレース
回答2件
あなたの回答
tips
プレビュー