下記のような二つのテーブルをジョイントして 親子形式の配列に抽出したいと考えています。
下記のような配列にしたいです。
data[parent][0][id]=> 1
data[parent][0][name]=> '白鳥 彩華'
data[parent][0][child][0][date]=> 2016-04-01
data[parent][0][child][0][weight]=> 54.3
data[parent][0][child][1][date]=> 2016-04-02
data[parent][0][child][1][weight]=> 57.6
data[parent][0][child][2][date]=> 2016-04-03
data[parent][0][child][2][weight]=> 55.8
以下省略...
「PDO::FETCH_NAMED」で出来そうなんですけど 使い方が解かりません
どなたか教えて下さい 宜しくお願い致します。
追記です...。
とりあえずの解決策として下記のコードで思った通りの配列は組めたんですけど...
php
1$pdo = new PDO(DNS,DBUSER,DBPASS,array(PDO::ATTR_EMULATE_PREPARES => false)); 2$pdo->query('SET NAMES utf8'); 3 4$stmt = $pdo->query(" SELECT * FROM `parent` "); 5 6if($stmt->rowCount() > 0){ 7 $articles = array(); 8 $i=0; 9 while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) { 10 $articles[$i]['id'] = $data['parent_id']; 11 $articles[$i]['name'] = $data['name']; 12 $i++; 13 } 14 $i=0; 15 foreach($articles as $parent){ 16 $id = $parent['id']; 17 $stmt2 = $pdo->query(" SELECT * FROM `child` WHERE `parent_id` = '$id' "); 18 while ($data2 = $stmt2->fetch(PDO::FETCH_ASSOC)) { 19 $articles[$i]['child']['date'][] = $data2['date']; 20 $articles[$i]['child']['weight'][] = $data2['weight']; 21 } 22 $i++; 23 } 24} 25return $articles;
なんか 合理的ではない気がするんです (=ω=。)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/04/17 14:38
2016/04/17 21:16