$_REQUEST['getA']、$_REQUEST['getB']、$_REQUEST['getC'] ・・・ とあり、 これらをMYSQLのSQL文に効率的に組み込んでいきたいです。 mysqlのデータと$_REQUESTのキー名と対応させた$lllを foreachでそれぞれをswitchで処理を分けて、 $qqqのSQL文に組み込んでいるつもりです。 よろしくお願いします。 $lll = array( "getA"=>"mysql_colum_name_A", "getB"=>"mysql_colum_name_B", "getC"=>"mysql_colum_name_C", "getD"=>"mysql_colum_name_D", "getE"=>"mysql_colum_name_E" ); foreach($lll as $key=>$val){ if(!isset($_REQUEST[$key]) or $_REQUEST[$key]==='') continue; switch($key){ case "getA": $ga = explode("+", $_REQUEST[$key]); $val_A = $val; break; case "getB": $gb = $_REQUEST[$key]; $val_B = $val; break; case "getC": $gc = $_REQUEST[$key]; $val_C = $val; break; case "getD": $gd = $_REQUEST[$key]; $val_D = $val; break; ~ 他のcaseが続く ~ } } $qqq =<<<__SSS__ SELECT * FROM table WHERE 1 AND ga0 <= val_A AND val_A < ga1 AND `colum_B` BETWEEN CURDATE() - INTERVAL gb YEAR AND CURDATE() - INTERVAL 1 DAY AND gc <= val_C AND gd <= val_D AND val_E IN(ge) ORDER BY field deskORasc LIMIT L1,L2; __SSS__; $sss = $ddd->prepare($qqq); $sss->execute(array( ':ga0'=>$ga[0], ':ga1'=>$ga[1], ':val_A'=>$val_A, ':gb'=>$gb, ':val_B'=>$val_B, ':gc'=>$gc, ':val_C'=>$val_C, ':gd'=>$gd, ':val_D'=>$val_D, ':ge'=>$ge, ':val_E'=>$val_E, ~いろいろなものが続く~ ':field'=>$field, ':deskORasc'=>$deskORasc, ':L1'=>0, ':L2'=>50 )); $rrr = $sss->fetchAll(PDO::FETCH_ASSOC);
↧