###前提・実現したいこと
PHP+MySQLでDBを操作しています。
表示名(例:「夏の野菜(葉物)」)を分解した後にSQLに埋め込んでいるのですが、
一部だけwhere文を省略したい部分があります(例:「夏の果物」)。
ISNULLなどを試してみましたが、
「夏の果物」は表示できても、「夏の野菜(葉物)」が表示できなくなったりしました。
$type_arrの要素数を数えて、if文で分岐させるしかないのでしょうか。
###該当のソースコード
php
1 public function getList($type, $maker) 2 { 3 $type = $this->typeEdit($type); 4 5 //$typeを分解する 6 $type_arr = explode('・', $type); 7 array_push($type_arr, $maker); 8 9 $sql = 'SELECT * FROM data 10 where data.item_type_1 =? 11 and data.item_type_2 =? 12 and data.item_type_3 =? //←これを無効にしたいです 13 and data.item_maker_id =?'; 14 $stmt = $this->pdo->prepare($sql); 15 $stmt->execute($type_arr); 16 $this->rows = $stmt->fetchAll(); 17 $this->listEdit(); 18 return $this->rows; 19 } 20 21 protected function typeEdit($type) 22 { 23 switch($type){ 24 case '夏の野菜(葉物)': 25 $type = '野菜・夏・葉物'; 26 break; 27 case '夏の野菜(根物)': 28 $type = '野菜・夏・根物'; 29 break; 30 case '冬の野菜(葉物)': 31 $type = '野菜・冬・葉物'; 32 break; 33 case '冬の野菜(根物)': 34 $type = '野菜・冬・根物'; 35 break; 36 case '夏の果物': 37 $type = '果物・夏'; 38 break; 39 case '冬の果物': 40 $type = '果物・冬'; 41 break; 42 default:; 43 } 44 return $type; 45 }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/19 01:10