私は本当にファンキーなコードを持っています。下のコードからわかるように、私はクエリに追加する一連のフィルタを持っています。今では複数のクエリを持つ方が簡単ですが、それは独自のフィルタセットを使用して結果を配列に格納するか、この混乱を招くでしょうか?PHP:複数のSQLクエリと1つのモンスター
誰もがこの混乱に良い解決策を持っていますか?私はキーワードと項目番号でフィルタリングできる必要があり、複数の値を使ってフィルタリングする必要があります。
//Prepare filters and values
$values = array();
$filters = array();
foreach($item_list as $item){
$filters[] = "ItemNmbr = ?";
$filters[] = "ItemDesc LIKE ?";
$filters[] = "NoteText LIKE ?";
$values[] = $item;
$values[] = '%' . $item . '%';
$values[] = '%' . $item . '%';
}
//Prepare the query
$sql = sprintf(
"SELECT ItemNmbr, ItemDesc, NoteText, Iden, BaseUOM FROM ItemMaster WHERE %s LIMIT 21",
implode(" OR ", $filters)
);
//Set up the types
$types = str_repeat("s", count($filters));
array_unshift($values, $types);
//Execute it
$state = $mysqli->stmt_init();
$state->prepare($sql) or die ("Could not prepare statement:" . $mysqli->error);
call_user_func_array(array($state, "bind_param"), $values);
$state->bind_result($ItemNmbr, $ItemDesc, $NoteText, $Iden, $BaseUOM);
$state->execute() or die ("Could not execute statement");
$state->store_result();
また、MATCH .. AGAINSTを使ってアイテム番号で検索することもできますか?残念なことに、アイテム番号はあまりにも理由があるいくつかのためだけの数字ではないので... – MackDaddy