データベースがどのように見えるか正確にはわかりませんが、次のようなことができます。
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 製の Shoe1 のページ設定で、Nike 製のすべての靴の選択オプションが必要ないため、もう少し具体的なものにすることをお勧めします。これgetShoes('nike', 'shoe1');
で、Nike の Shoe1 の選択ボックスのみが表示されます。お役に立てれば。:)