Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie zmiennej w funkcji
mikmas
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.02.2009

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


Aż nie mogę uwierzyć, że nie ma na googlach rozwiązania mojego problemu, więc pewnie robię jakiś mega trywialny błąd.
Tworzę sobie funkcję:
  1. CREATE FUNCTION FORMAT_PRICE(lp_price DECIMAL(10,2)) RETURNS VARCHAR(15)
  2. BEGIN
  3. DECLARE fraction VARCHAR(2);
  4. SET fraction=CAST(ROUND(lp_price*100) MOD 100 AS VARCHAR(2));
  5. IF CHAR_LENGTH(fraction)<2 THEN fraction=CONCAT('0',fraction);
  6. RETURN CONCAT(FLOOR(lp_price),',',fraction,' zł*');
  7. END

Jednak dostaję błąd związany z deklarowaniem zmiennej:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

MySQL w wersji najnowszej (albo jednej z najnowszych). Gdzie robię błąd?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ghost1511
post
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 18
Dołączył: 2.09.2010

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


Funkcja ROUND() przyjmuje dwa parametry
Go to the top of the page
+Quote Post
mikmas
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.02.2009

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


1 lub 2
"D defaults to 0 if not specified."
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Daj przed CREATE FUNCTION:
DELIMITER //
Go to the top of the page
+Quote Post
mikmas
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.02.2009

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


Błąd był w IF-ie. Po THEN fraction... nie dałem END
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 - 04:53