いつもお世話になります。
下記のように、A社及びB社を軸に複数の条件に応じてselectして
該当する値をDBから取得したい(該当があるとは限らない)のですが、
自分の知識では、提示のコードのようにfor文でループさせるしか思いつきません。
もちろん、このようにするとクエリを何度も発行するので非常に重い処理になってしまいます。
何か良い方法はございますでしょうか?
PHP
1$array_1=array(array("A社",100),array("A社",200),array("B社",300)); 2$array_2=array("aaaa","bbbb"); 3 4for ($i=0; $i <count($array_1); $i++) { 5 for ($j=0; $j <count($array_2); $j++) { 6 7try { 8//一部省略 9$sql=$pdo->query("SELECT B FROM testDB where C=:one AND D=:two AND E=:three"); 10$stmt=$pdo->prepare($sql); 11$stmt->bindValue(':one',$array_1[$i][0] , PDO::PARAM_STR); 12$stmt->bindValue(':two',$array_1[$i][1] , PDO::PARAM_STR); 13$stmt->bindValue(':three',$array_2[$i], PDO::PARAM_STR); 14$stmt->execute(); 15$result=$stmt->fetchall(PDO::FETCH_NUM); 16} catch (Exception $e) { 17var_dump($e->getMessage()); 18} 19 20 21 } 22} 23 24//期待するresult 25//1) A社/100/aaaaの組み合わせ→1000 26//2) A社/200/bbbbの組み合わせ→3000 27//3) B社/300/bbbbの組み合わせ→4000 28 29 30>>testDB 31[A] [B] [C] [D][ E] 321,1000,A社,100,aaaa 332,2000,A社,200,zzzz 343,3000,A社,200,bbbb 354,4000,B社,300,bbbb 365,5000,B社,300,zzzz 376,4000,B社,100,yyyy 387,3000,C社,500,kkkk 398,2000,C社,300,aaaa 409,1000,C社400,dddd 41 42
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/13 17:05