d0m1n1k_
26.05.2015, 13:37:18
Witam,
szukam od dłuższego czasu następującego rozwiązania:
Pobierając wartości liczbowe z bazy danych
chciałbym aby zawsze w wyniku wyświetlało mi tą samą długość, jak to wynać?
Dla jasności przytoczę przykład:
Pobieram powiedzmy 1, 10, 100, 1000, 10000;
Chcę aby wyświetlało mi to w postaci 00001, 00010, 00100, 01000, 10000;
Przeszukiwałem wujka google, ale nie wiem jak dobrze zadać pytanie aby otrzymać odpowiedź.
Z góry dziękuję za pomoc.
Pozdrawiam wszystkich!
Crozin
26.05.2015, 13:46:32
Jeżeli potrzebujesz tego na poziomie bazy danych skorzystaj z ZEROFILL.
Jeżeli potrzebujesz tego jedynie w celu wyświetlania skorzystaj z
printf:
http://stackoverflow.com/questions/153890/...leading-0s-in-cJeżeli potrzebujesz tego jako zawartości zmiennej, skorzystaj z podanego przez @nospor
str_pad.
nospor
26.05.2015, 13:54:39
Korzystanie z ZEROFILL moze doprowadzic tylko do problemow. Nie ma sensu w ogole w to wchodzic ani nawet o tym wspominac
Crozin
26.05.2015, 14:01:15
Cytat
Korzystanie z ZEROFILL moze doprowadzic tylko do problemow.
Generalnie zgadzam się, aczkolwiek są dosyć specyficzne przypadki, gdzie może to być pomocne. Dlatego też napisałem, żeby korzystać z tego tylko jeżeli potrzebujemy tego z jakiegoś powodu już na poziomie bazy danych.
d0m1n1k_
26.05.2015, 14:14:03
Bardzo dziękuję za pomoc.
Szukałem właśnie str_pad()
nospor
26.05.2015, 14:18:17
Cytat
Dlatego też napisałem, żeby korzystać z tego tylko jeżeli potrzebujemy tego z jakiegoś powodu już na poziomie bazy danych.
Autor wyraźnie napisał, ze potrzebuje tego do wyswietlania. Nawet jesli to mialoby byc wyswietlanie na poziome bazy danych to wowczas uzywamy:
https://dev.mysql.com/doc/refman/5.0/en/str...l#function_lpada nie ZEROFILL. Jak oboje sie zgadzamy, jest to niebezpieczne narzędzie i nawet wspominanie o tym, wywołuje wilka z lasu (a tu to tylko ja sie chyba z tym zgadzam)

Nie ma sensu bez powodu mieszać ludziom w głowach.