Faktycznie, no to dupa :<
Ok, postaram się skombinować normalny dostęp do SQL.
Na dzisiaj kończę Dzięki za pomoc
Napisano 14 lipca 2014 - 14:59
Faktycznie, no to dupa :<
Ok, postaram się skombinować normalny dostęp do SQL.
Na dzisiaj kończę Dzięki za pomoc
Napisano 16 lipca 2014 - 07:20
Zbyt szybko się cieszyłem, że udało mi się dojść do ładu poprzez regexy.
Zdjęcie nie pasuje do produktu.
O ile się nie mylę, to ma ono inne ID niż produkt?
Napisano 16 lipca 2014 - 09:44
UPDATE: Kto mi pomoże w tym zapytaniu podmienić fragment, pobierający dane do kolumny image_link
SELECT p.id_product, pl.name, p.price, p.condition, p.available_for_order, pl.description , c.name as category_name, concat('www.nazwasklepu.com/index.php?controller=product&id_product=',p.id_product) as full_link, concat( 'www.www.nazwasklepu.com', '/img/p/',mid(p.id_product,1,1),'/', if (length(p.id_product)>1,concat(mid(p.id_product,2,1),'/'),''),if (length(p.id_product)>2,concat(mid(p.id_product,3,1),'/'),''),if (length(p.id_product)>3,concat(mid(p.id_product,4,1),'/'),''),if (length(p.id_product)>4,concat(mid(p.id_product,5,1),'/'),''), p.id_product, '.jpg' ) AS image_link FROM ps_product p LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_category_lang c ON (p.id_category_default = c.id_category) WHERE p.active = 1 AND pl.id_lang = 1
Na taki, który będzie pobierać dane z poniższych tabel, w poniższej formie.
Mam tabelę: ps_image_lang
id_image id_lang legend 2 1 fotel_maja_chrom.jpg 3 1 fotel_maja_drewno.jpg 6 1 pufa_okragla.jpg
Oraz tabelę ps_image:
id_image id_product position cover 2 63 1 1 3 64 1 1 6 67 2 0
Muszę na podstawie ID produktu wybrać ID obrazka i stworzyć link postaci:
http://nazwasklepu.com/"id_image"-home_default/"legend".jpg
gdzie "id_image" i "legend" to komórki z tabeli ps_image_lang
PS: Nie cierpię złączeń. Pamiętam, że poprawiałem na przedmiocie z Oracla kolokwium z zapytaniami tego typu xD
UPDATE2:
Próbowałem coś takiego:
SELECT p.id_product, pl.name, p.price, p.condition, p.available_for_order, pl.description , cl.name as category_name, concat('www.xxx.com/index.php?controller=product&id_product=',p.id_product) as full_link, concat('www.x.com/',il.id_image,'-large_default/',il.legend,'.jpg') AS image_link FROM ps_product p LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_category_lang cl ON (p.id_category_default = c.id_category) LEFT JOIN ps_image i ON(p.id_product = i.id_product) LEFT JOIN ps_image_lang il ON (i.id_image = il.id_image) WHERE p.active = 1 AND pl.id_lang = 1
Próbowałem też ostatnie dwa złączenia zrobić alternatywnie z INNER JOINEM, ale no abla
Użytkownik zonic edytował ten post 16 lipca 2014 - 10:48
UPDATE
Napisano 16 lipca 2014 - 10:56
Ta druga tabela jest niepotrzebna, można wykorzystać generowanie linków do img:
SELECT p.id_product, pl.name, p.price, p.condition, p.available_for_order, pl.description , c.name as category_name, concat('www.nazwasklepu.com/index.php?controller=product&id_product=',p.id_product) as full_link, concat( 'www.www.nazwasklepu.com', '/img/p/',mid(pi.id_image,1,1),'/', if (length(pi.id_image)>1,concat(mid(pi.id_image,2,1),'/'),''),if (length(pi.id_image)>2,concat(mid(pi.id_image,3,1),'/'),''),if (length(pi.id_image)>3,concat(mid(pi.id_image,4,1),'/'),''),if (length(pi.id_image)>4,concat(mid(pi.id_image,5,1),'/'),''), pi.id_image, '.jpg' ) AS image_link FROM ps_product p LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_category_lang c ON (p.id_category_default = c.id_category) RIGHT JOIN ps_image pi ON (pi.id_product = p.id_product) WHERE p.active = 1 AND pl.id_lang = 1 AND pi.cover = 1
Jakby dalej było coś nie tak to wal
webDeveloper
Napisano 16 lipca 2014 - 11:02
Hmm. Wydaje się, że linki są dobre
Wytłumaczysz mi teraz skąd wziąłeś te ID, jeśli między ID zdjęcia, a ID produktu nie ma żadnej zależności?
UPDATE:
w ogóle nie mam pojęcia skąd ta struktura:
"img/p/4/8/48.jpg"
Ale to zapewne jakaś cecha presty ;p
Napisano 16 lipca 2014 - 11:27
Taka ścieżka jest po to żeby nie wrzucać wszystkiego do jednego katalogu, tak łatwiej je przeglądać. Total commander ma (przynajmniej kiedyś miał) problem z odczytem zbyt dużej ilości plików w katalogu i mógłbyś nie odczytać zawartości katalogu przy dużej ilości plików.
W ten spodób pliki rozkładają się na katalogi wg ID. dla 57.jpg będzie to "img/p/5/7/57.jpg
Wytłumaczysz mi teraz skąd wziąłeś te ID, jeśli między ID zdjęcia, a ID produktu nie ma żadnej zależności?
relacja jest w ps_image
Użytkownik vms edytował ten post 16 lipca 2014 - 11:34
Napisano 16 lipca 2014 - 11:33
Wytłumaczysz mi teraz skąd wziąłeś te ID, jeśli między ID zdjęcia, a ID produktu nie ma żadnej zależności?
jest zależność:
RIGHT JOIN ps_image pi ON (pi.id_product = p.id_product)
Choć w sumie to 'RIGHT' tutaj jest zbędne. Nie potrzebna jest ta druga tabela ps_image_lang.
w ogóle nie mam pojęcia skąd ta struktura:
Tak presta układa grafiki, a czemu? Zapewne z powodu opisanego przez vms Choć kto ich tam wie
Użytkownik unbreak edytował ten post 16 lipca 2014 - 11:33
webDeveloper
Napisano 16 lipca 2014 - 11:43
jest zależność:
Napisano 16 lipca 2014 - 12:34
No nie ma zależności, bo do jednego produktu możesz podpiąć wiele grafik
webDeveloper
Napisano 24 lutego 2015 - 15:12
kod sql uzytkownika unbreak ponizej
Wszystko w cytowanym kodzie pod phpmyadmin dziala poza description ta kolumna jest u mnie pusta a jest dla mnie jedna z wazniejszych
SELECT p.id_product, pl.name, p.price, p.condition, p.available_for_order, pl.description , c.name as category_name, concat('www.nazwasklepu.com/index.php?controller=product&id_product=',p.id_product) as full_link, concat( 'www.www.nazwasklepu.com', '/img/p/',mid(pi.id_image,1,1),'/', if (length(pi.id_image)>1,concat(mid(pi.id_image,2,1),'/'),''),if (length(pi.id_image)>2,concat(mid(pi.id_image,3,1),'/'),''),if (length(pi.id_image)>3,concat(mid(pi.id_image,4,1),'/'),''),if (length(pi.id_image)>4,concat(mid(pi.id_image,5,1),'/'),''), pi.id_image, '.jpg' ) AS image_link FROM ps_product p LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_category_lang c ON (p.id_category_default = c.id_category) RIGHT JOIN ps_image pi ON (pi.id_product = p.id_product) WHERE p.active = 1 AND pl.id_lang = 1 AND pi.cover = 1
Chcialbym zeby u mnie wygladal tak
dodac kolumne pl.description_short i usunac full_link co wyswietla pelen url id_product
Niby powinno to wygladac tak wg mnie (pojecie o skladni sql zerowe mam i pewnie tu lezy przyczyna)
SELECT p.id_product, pl.name, p.price, p.condition, p.available_for_order, pl.description, pl.description_short, c.name as category_name, concat( 'projekt.pl', '/img/p/',mid(pi.id_image,1,1),'/', if (length(pi.id_image)>1,concat(mid(pi.id_image,2,1),'/'),''),if (length(pi.id_image)>2,concat(mid(pi.id_image,3,1),'/'),''),if (length(pi.id_image)>3,concat(mid(pi.id_image,4,1),'/'),''),if (length(pi.id_image)>4,concat(mid(pi.id_image,5,1),'/'),''), pi.id_image, '.jpg' ) AS image_link FROM ps_product p LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN ps_category_lang c ON (p.id_category_default = c.id_category) RIGHT JOIN ps_image pi ON (pi.id_product = p.id_product) WHERE p.active = 1 AND pl.id_lang = 1 AND pi.cover = 1
no ale po wykonaniu kodu i tak kolumny description, description_short sa puste (bledow zadnych nie wywala)
z kolei przy wykonaniu takiego kodu
znaleziony gdzies w odmetach internetu
SELECT p.id_product AS 'ID', p.active AS 'Active (0/1)', pl.name AS 'Name', p.id_category_default AS 'Default Category', p.price AS 'Price tax excl.', p.id_tax_rules_group AS 'Tax rules ID', p.wholesale_price AS 'Wholesale price', p.reference AS 'Reference #', p.quantity AS 'Quantity', pl.description_short AS 'Short description', pl.description AS 'Description', pl.meta_title AS 'Meta-title', pl.meta_keywords AS 'Meta-keywords', pl.meta_description AS 'Meta-description', pl.available_now AS 'Text when in stock', pl.available_later AS 'Text when backorder allowed', p.available_for_order AS 'Available for order', p.date_add AS 'Product creation date', p.show_price AS 'Show price', p.online_only AS 'Available online only', p.condition AS 'Condition', concat( 'http://', ifnull( conf.value, 'projekt.pl' ) , '/img/p/',mid(p.id_product,1,1),'/', if (length(p.id_product)>1,concat(mid(p.id_product,2,1),'/'),''),if (length(p.id_product)>2,concat(mid(p.id_product,3,1),'/'),''),if (length(p.id_product)>3,concat(mid(p.id_product,4,1),'/'),''),if (length(p.id_product)>4,concat(mid(p.id_product,5,1),'/'),''), p.id_product, '.jpg' ) AS url_image FROM ps_configuration conf, ps_product p INNER JOIN ps_product_lang pl ON p.id_product = pl.id_product LEFT JOIN ps_supplier_lang sl ON p.id_supplier = sl.id_supplier LEFT JOIN ps_manufacturer_lang ml ON p.id_manufacturer = ml.id_manufacturer WHERE conf.name = 'PS_SHOP_DOMAIN'
kolumny description, description_short i reszte wyswietla juz prawidlowo przy pogladzie w phpmyadmin ale przy eksporcie do pliku cos sie zapetla i pobiera sie plik ktory wazy kilkaset mb zamiast max 10mb i nie idzie tego odtworzyc
Jakies pomysły?
Z góry dzięki za odpowiedź
Użytkownik jpn edytował ten post 24 lutego 2015 - 15:17
Temat | Forum | Autor | Podsumowanie | Ostatni post | |
---|---|---|---|---|---|
Hosting pod duży sklep na PrestaShop 1.6 |
Hosting | zonic |
|
|
|
Linkshop24.pl - usługi seo, profile, posty, ogłoszenia, zaplecze |
Pozycjonowanie i optymalizacja | linkshop24 |
|
||
25 lat photoshopa |
Ogólne | zonic |
|
|
|
[Photoshop] Abstrakcja by Evan. |
Tutoriale | proboszcz |
|
|
|
Poradnik Photoshop krok po krokuphotoshop |
Tutoriale | KasiaiTomek |
|
0 użytkowników, 0 gości, 0 anonimowych