Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ROZWIĄZANY] Edycja zawartośći komurek w bzie dancyh, Łaczenie wartości z kolumny Y do kolumny X z tekstem
Gru
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.05.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował Gru 25.05.2010, 20:20:40
Go to the top of the page
+Quote Post
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


CONCAT()
Go to the top of the page
+Quote Post
Gru
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.05.2010

Ostrzeżenie: (0%)
-----


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' )
Go to the top of the page
+Quote Post
Mchl
post
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


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')


Ten post edytował Mchl 25.05.2010, 22:11:10
Go to the top of the page
+Quote Post
Gru
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 25.05.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Gru 30.05.2010, 13:11:39
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:11