2016-04-13 13 views
1

Dizin sayfasında en çok satan 4 öğenin resmini görüntülemek istiyorum ancak kullanıyorum sql çalışmıyor. Bence sözdizimi doğru ama sayfada hiçbir şey göstermiyor. order_items tablosu ve ürün tabloları ürün tablosuna sahibim.Başka bir masadan en çok satan öğeleri ve ilişkili resmi görüntüleme

ürünler Tablo

CREATE TABLE IF NOT EXISTS `products` (
    `id` int(11) NOT NULL, 
    `date` datetime NOT NULL, 
    `category` int(11) NOT NULL, 
    `name` varchar(100) NOT NULL, 
    `image` varchar(100) CHARACTER SET utf8 NOT NULL, 
    `description` text NOT NULL, 
    `author` varchar(100) NOT NULL, 
    `price` decimal(5,2) NOT NULL 
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ; 

ORDER_ITEMS Tablo

CREATE TABLE IF NOT EXISTS `order_items` (
    `id` int(11) NOT NULL, 
    `order` int(11) NOT NULL, 
    `product` int(11) NOT NULL, 
    `price` decimal(8,2) NOT NULL, 
    `qty` int(11) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=68 ; 

NOT: ORDER_ITEMS tablosundaki alan ürünün, ürünün kimliğine karşılık gelir.

Son olarak, kullanıyorum ancak hiçbir şey göstermiyor sql deyim budur.

public function bestSellingItems(){ 
    $sql = "SELECT * FROM products AS p 
    INNER JOIN order_items AS od ON p.id = od.id 
    GROUP BY p.id, SELECT SUM(od.qty) AS total 
    ORDER BY SUM(od.qty) DESC limit 4"; 
} 

Herhangi bir yardım için minnettar olurum.

cevap

0

Değişikliklerin bir öz, productid tekabül söyledi ve ayrıca, ben bir hata atmak gerektiğine inanıyoruz ikinci seçme kısmını anlamadı, p.id = od.id kullanılan (hayır den ..) bu yüzden bir ayarlandı biraz - toplamı seçin, takma ad ve bu takma adla sipariş verin.

public function bestSellingItems(){ 
    $sql = "SELECT p.*,od.*,sum(od.qty) as sum_qty FROM products AS p 
    INNER JOIN order_items AS od ON p.id = od.product 
    GROUP BY p.id 
    ORDER BY sum_qty DESC limit 4"; 
} 
+0

Teşekkür olmalıdır "p.id ÜZERİNE od OLARAK INNER JOIN ORDER_ITEMS = od.id", @sagi !! Doğru çalışıyor. – raul

0

senin katılmak İÇ p.id AÇIK OLARAK od ORDER_ITEMS KATILIN = od.Product

+0

Ve bu tek sorun mu? – sagi

+0

Evet, benim hatam! ama hala çalışmıyor. aharon – raul

İlgili konular