データの取得がうまくいかず詰まったので質問いたします。
###やりたいこと
データAから取得した値でデータBのデータを抽出する
###データA
DB情報 id | user 1 | 1 2 | 2 3 | 3 ・ ・ ・ 10 | 10
MySQL
1"SELECT * FROM dataA WHERE Ymd = :Ymd";
まずは上記の単純な抽出によりデータAの値を抽出します。
下記が抽出されたときの表示です。(var_dump)
dataA array(10) { [0] => array(2) { ['id'] => "1" ['user'] => "1" } [1] => ・ ・ ・ [9] => array(2) { ['id'] => "10" ['user'] => 10 } }
※一旦このデータは$dataAに入れておくことにします。
###データB
DB情報 id | staffA | staffB 1 | 1 | 2 2 | 1 | 2 3 | 1 | 2 ・ ・ ・ 10 | 1 | 2
MySQL
1"SELECT * FROM dataB WHERE id = :id";
とりあえず上記のSQL文の中の:idはデータAで取得したidです。
つまり、dataA.id = dataB.idでマッチしたデータを取得するというのが動きになります。
###動かしたい動き
$dataAの中には配列で10行文のデータが入っていますが、これを使ってdataBも10行文引っ張ってきたいのですが、どうもうまくいかず頭が混乱しだしたので、ここで質問したいと思いました。
例えば
PHP
1$dataA = $this->DB->A_Select($Ymd); 2$dataB = $this->DB->B_Select($dataA); 3// まず上記のような感じで呼び出すとして、、、 4// SQL文は基本的に先に書いたものだと思っていただければと思います。 5 6/***ここからはDBのコードにします***/ 7$stmt = $dbh->prepare($sql); 8$stmt->bindValue(':id', $dataA['id']) 9$stmt->execute(); 10$result = $stmt->fetchAll(); 11return $result; 12/* 失敗 */ 13 14foreach($dataA as $A) { 15$stmt->bindValue(':id', $A['id']) 16$stmt->execute(); 17} 18/* 失敗 */
この他にもfor文で書いてみたり、そもそも$dataB = のところ回してみたりとかやってみたのですが、、、どうにもうまくいかず、よくわからなくなりました。。。
初歩的な事ですが、アドバイスお願いします。
###一応解決?
なんかごそごそやっていて、配列の入れなおしとかもやってみたらなんとかできることはできました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。