我有一個大型產品列表的MYSQL表。在這個產品列表中有類別,名稱,描述,文本等。我想爲可用於其的行業(例如醫院,學校,活動,體育賽事等)添加修飾符如何在一列中選擇具有多個值的單元格?
我現在通過運行PHP/MySQL的這個查詢:
public function GetIndustrySeries($identifier, $SeriesIDArray = null)
{
$query = "select ser.Identifier,
ser.ModelNumber,
ser.Title,
ser.Caption,
ser.Description,
ser.Picture,
ser.Industry,
cat.TitleText,
ser.AutoID,
ser.BasePrice
from ProductSeries ser
inner join
ProductIndustry cat
on
cat.Industry
=
ser.Industry
where
ser.Industry
like
?";
if($SeriesIDArray != null && count($SeriesIDArray) > 0)
$query .= " and ";
$i = count($SeriesIDArray);
$parameters = array();
$parameters[0] = "s";
$parameters[1] = $identifier;
if($SeriesIDArray != null){
foreach($SeriesIDArray as $id)
{
$parameters[0] .= "i";
array_push($parameters, $id);
$query .= " ser.AutoID = ?";
if($i > 1)
$query .= " or ";
$i--;
}
}
$stmt = $this->_mysqli->prepare($query);
//$stmt->bind_param('ss', $identifier);
call_user_func_array(array($stmt,'bind_param'), $parameters);
$stmt->execute();
$stmt->bind_result($ident2, $model, $title, $caption, $description, $picture, $ident, $catText, $sid, $price);
$stmt->store_result();
if($stmt->num_rows < 1)
{
$stmt->close();
return null;
}
$array = array();
while($stmt->fetch())
{
array_push($array, array('seriesLink' => "/products/$ident2/$model", 'seriesTitle' => $title, 'seriesImage' => $picture, 'seriesCaption' => $caption, 'seriesDescription' => $description, "seriesCategoryName" => $catText, "seriesID" => $sid, "basePrice" => $price));
}
$stmt->close();
return $array;
}
我使用%改性劑在兩側的代碼試過嗎?但我發現了一個錯誤的路線:
警告:call_user_func_array()[function.call-用戶FUNC陣列]:第一個參數是有望成爲一種有效的回調,「陣列」是在給定的C:\ wamp \ www \ database.php在線70.
在表中我有一個「行業」專欄,我想要做的是將產品符合要求的行業放在那裏可以接受多個值:「學校,酒店,醫院」
'希望它可以接受多種價值:「學校,酒店,醫院」 - 你認爲正常化嗎?請參閱http://en.wikipedia.org/wiki/Database_normalization – VolkerK 2010-08-17 23:41:44