Ben gerçekten korkak kodu var. Ben sorgulamak eklemek filtreleri bir dizi var aşağıda size koddan görebilirsiniz. Sadece o bir dizi sonuçları saklamak veya bu karmaşa var, filtrelerin da kendi seti ile, birden fazla sorgu var Şimdi daha kolay olurdu?
Herkes bu karmaşa daha iyi bir çözüm var mı? Ben anahtar kelime ve madde sayısına göre filtre gerekiyor, ve hangisinin bilmiyorum, çoklu değerleri kullanarak filtre edebilmek gerekiyor.
//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();