Skocz do zawartości

sprintf


dargre`

Rekomendowane odpowiedzi

Funkcja formatowania sprintf.

Jak zrobić przy pomocy tej funkcji 'sprintf' żeby np.

liczbę całkowitą: 12345234 sformatować na string w postaci '12,345,234' ?

Albo jeszcze lepiej od razu jak to zrobić w SMARTY: {$liczba|format:"....."}

W grę wchodzą wyłącznie liczby całkowite.

Sorry, nie odpowiadam na PMy

Odnośnik do komentarza
Udostępnij na innych stronach

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Czyli wychodzi na to, że trzeba użyć funkcji i nie da się tego zrobić podając parametr dla sprintf...

A właśnie taki parametr formatowania mółbym zastosować w SMARTY...

Nie bardzo mi się podoba takie obejście, bo po pobraniu liczby z MySql będę musiał przelecieć rekordy jeszcze raz tylko po to, żeby każdy rekord przeformatować funkcją...

Sorry, nie odpowiadam na PMy

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo mi się podoba takie obejście, bo po pobraniu liczby z MySql będę musiał przelecieć rekordy jeszcze raz tylko po to, żeby każdy rekord przeformatować funkcją...
co takiego ? ;)

/** Po chwili **/

Poza tym możesz skorzystać z funkcji SQL:

SELECT FORMAT(12345234,2) AS kwota; 

kwota

12,345,234.00

SELECT REPLACE(FORMAT(12345234,2),',',' ')  AS kwota;

kwota

12 345 234.00

itd__

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo mi się podoba takie obejście, bo po pobraniu liczby z MySql będę musiał przelecieć rekordy jeszcze raz tylko po to, żeby każdy rekord przeformatować funkcją...
co takiego ? ;)

/** Po chwili **/

Poza tym możesz skorzystać z funkcji SQL:

SELECT FORMAT(12345234,2) AS kwota; 

kwota

12,345,234.00

SELECT REPLACE(FORMAT(12345234,2),',',' ')  AS kwota;

kwota

12 345 234.00

itd__

Mógłbym chować liczbę w bazie jako VARCHAR, ale później jest kłopot z sortowaniem góra dół i odwrotnie.

Nie sprawdzałem, ale podejrzewam, że takie wstępne przeformatowanie także pozbawi mnie możliwości sortowania. Więc raczej w zmiennej przechowywana jest liczba (bezprzecinkowa) a jedynie prezentacja liczby ma być sformatowana.

Sorry, nie odpowiadam na PMy

Odnośnik do komentarza
Udostępnij na innych stronach

Funkcje używane podczas wykonywania SELECTu nie zmieniają danych, tylko je formatują.

Czyli to co jest pomiędzy SELECT a FROM nie wplywa na reszta zapytania, póki nie zostanie zdefiniowany i uzyty alias.

Z bólem ale w końcu doszedłem do celu. Za Twoją poradą sformatowałem dane na etapie SELECT z MySQL. Dużo tego formatowania, ale efekt jest OK. Dzięki za skuteczną poradę.

Sorry, nie odpowiadam na PMy

Odnośnik do komentarza
Udostępnij na innych stronach

Po co cytujesz całe poprzednie wypowiedzi ! :D

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności