Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Najlepiej Kupowane sortowanie ?
Forum PHP.pl > Forum > Bazy danych
Spyder
Witam

Chce zrobic sortowanie aby wybieralo mi z tabeli jakiejs przedmioty ktorych ID wystepuje najczesciej moze ktos mi podpowiedziec zapytanie do czegos takiego:

Chce zrobic takie Best Sellers

SELECT FROM zamowienia WHERE .....

Dzieki za odp..
heaven
  1. SELECT products_id, count(products_id) AS ilosc FROM zamowienia GROUP BY products_id ORDER BY ilosc DESC


jesli o to ci chodzi
beel
Tak to zapisz:
  1. SELECT IDProdukt, count(*) AS [ilosc] FROM zamowienia GROUP BY IDProdukt HAVING COUNT(*)>3


Czyli pokaże ci te id które pojawiły się co najmniej 4 razy. A to co zaproponował powyżej heaven zliczy ilość wystąpień każdego z id.
heaven
beel no jak na moj gust chodzi o to zeby wlasnie zliczyc ilosc wystapien id i posortowac wedlug tej liczby malejaco i pobrac np. dziesiec pierwszych wierszy i masz top10 w ilosci sprzedach produktow.
beel
Tak można skorzystać z jednego lub drugiego rozwiązania, ale nie dopisałeś tego w poprzednim poście winksmiley.jpg Niestety najczesciej sie tak dzieje, że ktoś szuka pomocy pierwszym postem, a pozniej juz nie bierze udzialu w rozwiazywaniu go na rozne sposoby(mam na mysli zalozyciela tego tematu).

pozdrawiam
Spyder
Chodzi dokladnie o to mam tabele

product_id | order id | order_quantity | product_price

1 | 23 | 2 | 4.50
1 | 24 | 1 | 4.50
2 | 25 | 1 | 1.17

i teraz tabele np.

product_id | product_name | product_price | priduct_quantity ....


i takie sortowanie ma wyliczyc z tabeli 1 ile razy wystapilo id np 1 i pobralo z tabeli 2 nazwe productu o tym id ktorego w tabeli 1 jest najwecej. Czyli jezeli productu o id 1 jest 56 razy w tabeli 1 a productu o id 2 jest 45 razy to odp z bazy bedzie

Auto ( gdzie auto ma id 1)
Kot ( gdzie kot ma id 2 )...
heaven
  1. SELECT p.product_name, count(op.product_id) AS ilosc FROM orders_product op LEFT JOIN product p ON p.product_id = op.product_id GROUP BY op.product_id ORDER BY ilosc DESC

gdzie "orders_product" to ta pierwsza twoja tabela a "product" to druga bo nie podales ich nazw

Tylko ze to zlicza ilosc wystapien danego produktu w tabli orders_product. tak wiec jak ktos kupil produkt o id 1 raz ale np. 100szt to i tak bedzie dalej niz produkt ktory kupilo juz 5 osob ale po jednej sztuce. zeby bralo pod uwage pole quantity trzeba napisac to tak

  1. SELECT p.product_name, SUM(op.order_quantity) AS ilosc FROM orders_product op LEFT JOIN product p ON p.product_id = op.product_id GROUP BY op.product_id ORDER BY ilosc DESC
Spyder
Mam cos takiego i dziala tylko mysle jak dodac aby bralo inne dane o produkcie jak jego nazwe z 2 bazy

$ib = 3; //ilosc_best sellerow


require "db.inc.php";
$mysqli = new mysqli($hostName, $username, $password, $databaseName, 3306);

$zapytanie3 = $mysqli->query("SELECT product_id, count(product_id) AS ilosc FROM product_orders GROUP BY product_id ORDER BY ilosc DESC ");

while($i<$ib)
{
$wynik = mysqli_fetch_array($zapytanie3);
echo '<table class="table">
<tr><td align="center" class="text">'.$wynik["product_id"].'</td></tr></table>';
$i++;
}

Co ciekawe ten kod dziala na odzielnym pliku a jak wkleje do np index.php to dziala w operze ie a w mozilli juz sie nie wyswietla chyba jest problem z zapisem count() questionmark.gif?
heaven
Jesli dziala pod ie, opera a mozilla nie to musisz miec jakis blad w kodzien html a nie SQL

jesli chdozi o to zeby ci wyswietlaloinne dane to wystarczy dopisac to do tego zapytania tak jak tu dodane product_description

  1. SELECT p.product_name, p.product_description SUM(op.order_quantity) AS ilosc FROM orders_product op LEFT JOIN product p ON p.product_id = op.product_id GROUP BY op.product_id ORDER BY ilosc DESC
Spyder
Mam naprawde dziwna sytuacje bo jak zainkluduje kod z innego pliku do index to nie dziala jak wkleje to tez nie ale jak zrobie przez infrema to dziala za to na operze dziala zawsze jak dokleje kod do innego pliku gdzie juz mam 2 inne zapytania co dzialaja to ten ostatni tez nie dziala i co jest do h.... siedze 4h nad tym

Doszedlem ze nie moge 2x zaincludowac require "db.inc.php"; bo sie wysypuje to w tym byl problem a nie moge dodac tego w index bo nie wszystko dziala moze wie ktos jak to obejsc questionmark.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.