我一直在电子商务网站www.lady-elegance.co.uk上工作,其主要产品是鞋子。该网站运行良好,显示类别等所有产品,但我想做的是能够将每种尺寸的每只鞋作为后端的单独产品,以保持库存水平的记录。
例如:尺寸10中的“鞋1”具有ID 00001,尺寸11中的“鞋1”具有ID 00002,依此类推。
创建每个产品很简单,但我想要的是能够通过下拉显示“鞋1”一次,每个尺寸对应于每个产品ID,仅显示其中的尺寸库存。
每种鞋类型显然都有自己的制造商产品ID,我可以使用它来识别该组,但如何将相同的组合在一起。
我无法理解它的逻辑。请有人帮忙!
我发现这个答案似乎很相似,但需要一些帮助来理解它(Click Here)
答案 0 :(得分:0)
我不确切知道您的数据库是什么样的,但您可以这样做:
function getShoes($manufacturer, $name=''){
$manufacturer = mysqli_real_escape_string($manufacturer);
$sql = 'SELECT id, name, size FROM shoes WHERE manufacturer = "'.$manufacturer'" AND in_stock > 0 ';
if($name){
$name = mysqli_real_escape_string($name);
$sql .= 'AND name = "'.$name.'" ';
}
$sql .= 'ORDER BY name, size';
$result = mysqli_query($sql); //Results like this: id:00001, name:shoe1, size:10
while($row = mysqli_fetch_array($result)){ // id:00002, name:shoe1, size:11
$rows[$row['name']][] = $row; //group them by name (assuming you have more
} //than one shoe type per manufacturer)
foreach($rows as $name=>$shoes){
echo('<select name="'.$name.'">');
foreach($shoes as $shoe){
echo('<option value="'.$shoe['id'].'">'.$shoe['name'].' - '.$shoe['size'].'</option>');
}
echo('</select>');
}
}
现在在您的HTML中,如果您调用此功能,您将获得由您指定的制造商生产的所有鞋子。例如,getShoes('nike');
将获得Nike生产的所有鞋子,并为您提供所有选择框。您可能想要更具体一点,因为您不希望Nike在Nike制造的Shoe1页面设置中为每一双鞋做出选择。那么你就可以做getShoes('nike', 'shoe1');
而这只会给你Nike的Shoe1的选择框。希望这可以帮助。 :)