Veritabanı tasarımı ve quering satırları ile Yardım

1 Cevap

Ne bu veritabanı tasarımı var ve ben tek satırda isim, çeşitliliği ve fiyatı görüntülemek için arıyorum ne zaman ürün ve fiyatların üç sıra isimleri id üç satır görüntüleme ve her alanın üç sıra daha sonra bir sonraki satır başka gösterilecek alanında farklı dizi ilk satırda farklı değerleri. Nasıl elde edebilirsiniz aşağıda veritabanı tasarımı ile bu ile bu?

CREATE TABLE products (
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
name VARCHAR(255)
);

CREATE TABLE product_varieties (
product_id INT,
variety VARCHAR(100),
price DOUBLE,
description TEXT,
PRIMARY KEY (product_id, variety)
);

INSERT INTO products (id, name) VALUES (1, 'Cotél de camarone');
INSERT INTO product_varieties (product_id, variety, price) VALUES (1, 'Small Tray',   2.9);
INSERT INTO product_varieties (product_id, variety, price) VALUES (1, 'Medium Tray', 6.9);
INSERT INTO product_varieties (product_id, variety, price) VALUES (1, 'Large Tray', 8.9);

Go here to see an example of what I am talking. Again I want the price 2.9 to display in small tray of the first row, then 6.9 display in the medium tray of the first row, and 8.9 display on large tray of the first row. Right now is display prices for row...

yardımcı olur.

1 Cevap

"gruplandırılmış" şeklinde çıkışı çok basit bir ağaç hem yapısı (diziler dizi), veri dönüştürme deneyin

Böyle bir şey (pseudocode)

 $tree = array();
 $sql = "select * from products
     left join product_varieties on product_varieties.product_id = products.id";
 $sth = query($sql);
 while($row = fetch($sth)) {
    $id = $row['id'];
    $tree[$id]['name'] = $row['name'];
    if($row['variety'])
       $tree[$id]['varieties'][] = $row;
 }

Böyle bir dizi oluşturur

   1 => array
      name => 'Cotél de camarone',
      varieties => array
          array(1, 'Small Tray', 2.9)
          array(1, 'Medium Tray', 6.9)
          etc
   2 => array
      name => 'Something else',
      varieties => array
          array(1, 'Small Tray', 2.9)
          array(1, 'Medium Tray', 6.9)
          etc

Bu dizi üzerinde döngü ve ihtiyacınız olan bir html yapıları oluşturmak

foreach($tree as $product)
    <div>
    echo $product['name']
    foreach($product['varieties'] as $variety)
         etc etc
    </div>

Ben mantıklı yapıyorum umut