Skocz do zawartości


Zdjęcie

zapytanie sql


  • Zaloguj się, aby dodać odpowiedź
13 odpowiedzi w tym temacie

#1 danxg

danxg

    Użytkownik

  • Members
  • PipPip
  • 57 postów

Napisano 25 maj 2012 - 12:58

Witam,Nie wiedziałem za bardzo w jakim dziale umieścić ten wątek to umieściłem go tutaj.Problem skierowany jest do kogoś kto ogarnia zapytania sql.Chciałbym uzyskać w moim phpmyadmin następujący wydruk listy produktów (aktywnych!):Nazwa produktu, cena, ile ma przyporządkowanych kombinacjia tu bardziej szczegółowo jak to osiągnąć tylko nie znam za bardzo zapytań sql a przynajmniej takich skomplikowanych... więc:Z tabeli:'ps_product_lang' -nazwe produktu (kolumna id_lang (potrzebuje tylko te o wartości = 1) nazwa produktu znajduje się w kolumnie link_rewrite) z tabeli 'ps_product' - cenę oraz czy jest aktywny (kolumna z ceną nazwya się price, a produkt aktywny ma w kolumnie active wartość = 1) z tabeli ps_product_atribute ilość kombinacji danego produktu jest równa ilości powtórzeń wartości id_product w kolumnie id_productczyli np w tej tabeli ps_product_atribute jak mamy w kolumnie id_product występowanie trzy razy tego samego nr to oznacza ze sa przyporzadkowane do niego właśnie 3 kombinacje i tej liczby potrzebuje tylko..Mam nadzieje ze w miare jasno wytlumaczylem o co mi chodzi moge jeszcze podpowiedzieć ze laczyc tabele nalezy poprzez id_product. W razie pytan prosze pisac a ja sam prosze o pomoc.Wydruk ten mi bedzie bardzo pomocny do tworzenia stanow na magazynie :)Tabele można połączyć

#2 ircykk

ircykk

    Administrator

  • Administrators
  • 5051 postów
  • PrestaShop:1.5, 1.6

Napisano 25 maj 2012 - 13:18

SELECT p.price, p.active, pl.link_rewrite, COUNT(pa.id_product_attribute) AS nb_attributes FROM ps_product pLEFT JOIN ps_product_lang pl ON pl.id_product = p.id_productLEFT JOIN ps_product_attribute pa ON pa.id_product = p.id_productGROUP BY p.id_product
Z tym że zwraca liczbę atrybutów a nie kombinacji, to nie jest to samo. Jak chcesz mieć liczbę kombinacji kod będzie wyglądał inaczej.

#3 danxg

danxg

    Użytkownik

  • Members
  • PipPip
  • 57 postów

Napisano 28 maj 2012 - 06:12

Dokładnie potrzebuje jeszcze tej liczby oznaczonej czerwoną obwódką: http://zapodaj.net/d...ff24d5.jpg.html ponieważ ta liczba mówi mi ile mam przyporządkowanych kolorów do danego modelu produktu. wiem czy potrzebna jest jego aktualizacja czy też nic się nie zmieniło i nie trzeba go edytować.

#4 danxg

danxg

    Użytkownik

  • Members
  • PipPip
  • 57 postów

Napisano 29 maj 2012 - 06:25

Czy ktoś wie jak uzyskać jeszcze tą wartość ze zdjęcia?

#5 sokon

sokon

    Zaawansowany

  • Members
  • PipPipPip
  • 108 postów
  • LocationCzeladź

Napisano 29 maj 2012 - 10:04

SELECT COUNT(*) FROM '._DB_PREFIX_.'product_attribute WHERE id_product = ID_PRODUKTU

#6 danxg

danxg

    Użytkownik

  • Members
  • PipPip
  • 57 postów

Napisano 29 maj 2012 - 10:13

A jak to zapytanie połączyć z tym od ircykka bo jestem zielony w sql i za bardzo nie wiem :?

#7 sokon

sokon

    Zaawansowany

  • Members
  • PipPipPip
  • 108 postów
  • LocationCzeladź

Napisano 29 maj 2012 - 10:18

Ale w jego zapytaniu już masz to "wyłuskane" (COUNT(pa.id_product_attribute) AS nb_attributes)

#8 ircykk

ircykk

    Administrator

  • Administrators
  • 5051 postów
  • PrestaShop:1.5, 1.6

Napisano 29 maj 2012 - 10:37

To wtedy będzie tak:
SELECT p.price, p.active, pl.link_rewrite, COUNT(DISTINCT pac.id_product_attribute) AS nb_combinations FROM ps_product pLEFT JOIN ps_product_lang pl ON pl.id_product = p.id_productLEFT JOIN ps_product_attribute pa ON pa.id_product = p.id_productLEFT JOIN ps_product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attributeGROUP BY p.id_product
Zwróci ci liczbę kombinacji a nie atrybutów.

#9 danxg

danxg

    Użytkownik

  • Members
  • PipPip
  • 57 postów

Napisano 29 maj 2012 - 10:55

jeszcze jeden makament :) niektóre produkty są wyświetlane w tym zapytaniu a nie ma ich po wyszukaniu w BO :? mógłbym prosić o dodanie kolumny id_produktu- moze wtedy sie odnajde :) a i też przechodząc po tych wynikach zdarza się ze wyświetla nieaktywny produkt tzn. o wartości active = 0

#10 ircykk

ircykk

    Administrator

  • Administrators
  • 5051 postów
  • PrestaShop:1.5, 1.6

Napisano 29 maj 2012 - 11:07

SELECT p.id_product, p.price, p.active, pl.link_rewrite, COUNT(DISTINCT pac.id_product_attribute) AS nb_combinations FROM ps_product pLEFT JOIN ps_product_lang pl ON pl.id_product = p.id_productLEFT JOIN ps_product_attribute pa ON pa.id_product = p.id_productLEFT JOIN ps_product_attribute_combination pac ON pac.id_product_attribute = pa.id_product_attributeWHERE p.active = 1GROUP BY p.id_product
Trzeba dodać jeszcze warunek jeśli mają być tylko aktywne.

#11 danxg

danxg

    Użytkownik

  • Members
  • PipPip
  • 57 postów

Napisano 29 maj 2012 - 12:14

no super działa:)tylko.... :?

niektóre produkty są wyświetlane w tym zapytaniu a nie ma ich po wyszukaniu w BO

tylko czy ktoś wie jak odfiltrować tak aby wyświetlało mi tylko te produkty które są widoczne na sklepie? bo tutaj wyśietla mi też takie których produktów już nie ma ani we FO ani BO :? :? :?

#12 ircykk

ircykk

    Administrator

  • Administrators
  • 5051 postów
  • PrestaShop:1.5, 1.6

Napisano 29 maj 2012 - 12:29

Jak to nie ma? Jeśli są w bazie a nie w sklepie znaczy że masz jakiś błąd lub przedmioty zostały niepoprawnie lub nie pełnie usunięte.

#13 danxg

danxg

    Użytkownik

  • Members
  • PipPip
  • 57 postów

Napisano 31 maj 2012 - 06:27

hm.. a może ktoś napisać jakl zrobić wydruk danych z bazy na zwykłej stronie html/php w podobny sposób co wyrzuca phpmy admin?

#14 ircykk

ircykk

    Administrator

  • Administrators
  • 5051 postów
  • PrestaShop:1.5, 1.6

Napisano 31 maj 2012 - 13:20

Zajrzyj do manuala phpMyAdmin, możesz kliknąć eksportuj i zapisz np do PDF.




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych

Hosting zapewnia: Hekko.pl