0

私は、主な製品が靴である e コマース サイト www.lady-elegance.co.uk に取り組んでいます。サイトはカテゴリ内のすべての製品を表示するなどうまく機能しますが、私がやりたいのは、在庫レベルの記録を保持するために、バックエンドで各サイズの各靴を個別の製品として持つことができるようにすることです.

たとえば、サイズ 10 の「靴 1」の ID は 00001、サイズ 11 の「靴 1」の ID は 00002 などです。

各製品を作成するのは簡単ですが、私が望むのは、各製品 ID に対応する各サイズのドロップダウンで「靴 1」を 1 回表示し、在庫のあるサイズのみを表示できるようにすることです。

靴の種類ごとに独自のメーカーの製品 ID があり、それを使用してグループを識別できますが、同じものをグループ化するにはどうすればよいでしょうか。

私はその論理に頭を悩ませることができません。誰か助けてください!

似ているように見えるこの回答を見つけましたが、理解するのに助けが必要です(ここをクリック

4

1 に答える 1

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

于 2012-09-18T04:58:34.023 に答える