2012-09-18 63 views
0

我一直在一個電子商務網站www.lady-elegance.co.uk,其主要產品是鞋。該網站很好地展示了所有產品的類別等,但我想要做的是能夠將每種尺寸的每隻鞋作爲後端的獨立產品,以保持庫存水平的記錄。在基於相同製造商的PHP結合MySQL的結果

例如:尺碼爲10的「鞋1」具有ID 00001,尺碼爲11的「鞋1」具有ID 00002等等。

創建每個產品很容易,但我想要的是能夠顯示一次下拉式「鞋1」,並且每個產品ID都對應一個尺寸,只顯示那些尺寸有現貨。

每種鞋子類型顯然都有自己的製造商產品ID,我可以用它來識別組,但是如何將相同的組合在一起。

我無法理解它的邏輯。有人可以幫忙!

我發現這個答案出現相似,但需要一些幫助理解它(Click Here

回答

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爲耐克製作的Shoe1的頁面設置中的每個鞋子選擇選項。那麼你可以做getShoes('nike', 'shoe1');,那隻會給你耐克鞋Sh1的選擇框。希望這可以幫助。 :)