我不确切知道您的数据库是什么样的,但是您可以执行以下操作:
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');
将获取所有耐克制造的鞋子,并为您提供所有选择框。您可能希望使其更具体一些,因为您不希望在耐克制造的 Shoe1 的页面设置上为耐克制造的每只鞋选择选项。所以你可以这样做getShoes('nike', 'shoe1');
,这只会给你耐克的 Shoe1 的选择框。希望这可以帮助。:)