Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ROZWIĄZANY] Edycja zawartośći komurek w bzie dancyh
Forum PHP.pl > Forum > Bazy danych > MySQL
Gru
Witam, mam problem z miniaturami produktów w VirtueMart. Problem jest w bazie danych.

W bazie danych w kolumnie "product_thumb_image" mam burdel, trzeba tam wstawić wartość "resized/XXXXXXXXXXXX_100x100.jpg" gzie XXXXXXXXXXX to wartość równoległej komórki z kolumny "product_full_image".

Czy jest jakaś komenda bym mógł zamienić te wartości na poprawne. Wydaje mi się że coś takiego będzie potrzebne.
UPDATE `vm_product' SET `category_thumb_image` = `resized/ <<operator sumowania sql>> category_full_image <opearto łączenia slq> _120x120.jpg`

Jest jeszcze konieczność usunięcia w pierwszej kolejności rozśnieżenia .jpg bo musi ono być po przyrostku _120x120
Mchl
CONCAT()
Gru
Zanim to odpalę w bazie danych, proszę sprawdźcie czy dobrze przygotowałem zapytanie

  1. UPDATE `vm_product' SET `category_thumb_image` = `CONCAT('resized/', 'category_full_image', '_120x120.jpg')'


Tylko, że w ten sposób powstanie mi coś takiego:

'resized/nazwaplikuminaturki.jpg_120x120.jpg'

A powinno być

'resized/nazwaplikuminaturki_120x120.jpg'

Ale mam burdel... czy to się w ogóle da zrobić? Może najpierw zrobić:

  1. UPDATE `vm_product' SET `category_thumb_image` = `category_full_image'
<--- przez to polecenie rozumiem, skopiowanie wartości komórek z kolumny `category_full_image' do "category_thumb_image` a potem usunąć przyrostki '.jpg' z komórek w kolumnie 'category_thumb_image' tylko jaką komendą?

A następnie wykonać polecenie

  1. UPDATE `vm_product' SET `category_thumb_image` = `CONCAT('resized/', category_thumb_image', '_120x120.jpg')'


Tylko czy takie zapytanie jest poprawne? Bo przecież zmieniam wartość komórki na jej dotychczasową zawartość plus przedrostek i przyrostek.

Odpowiedz moja pod moim postem bo to finalne rozwiązanie tego problemu, tak dla potomnych...


  1. UPDATE `jos_vm_product` SET `product_thumb_image` = CONCAT( 'resized/', substring( product_full_image, 1, length( product_full_image ) -4 ) , '_120x120.jpg' )
Mchl
Nie masz testowej bazy danych, żeby sprawdzić? Stąpasz po cienkim lodzie.

Możesz użyć jeszcze REPLACE(), żeby obciąć .jpg z nazwy pliku

Kod
UPDATE `vm_product' SET `category_thumb_image` = CONCAT('resized/', REPLACE(category_full_image,'.jpg',''), '_120x120.jpg')
Gru
Wiem, że to bardzo niebezpieczne smile.gif, oczywiście robię to na domowym XAMPP'ie. I zapewniam działa. Postanowiłem jeszcze podmienić obrazki z 84 kategoriach. Ich ręczna edycja była by masakryczna. Ale wykorzystując skrypt w Photo Shopie oraz wsadową zmianę nazw z TotalCommander'a. A także ta komendę w oczywiście dostosowana na potrzebę innej tabeli i innych kolumn daje znakomite rezultaty.

  1. UPDATE `jos_vm_category` SET `category_thumb_image` = CONCAT( 'resized/', substring( category_full_image, 1, length( category_full_image ) -4 ) , '_120x120.png' )



Tutaj funkcje obcinania rozszerzenia wykonuje substring( category_full_image, 1, length( category_full_image ) -4 ) a dokładniej length( category_full_image ) -4 .

Ale dzięki za radę, z pewnością się przyda.
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.