Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> char to intiger , intiger to char
Stratoliner
post 11.03.2013, 08:10:31
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 11.03.2013

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


Witam. Nie jestem pewien czy to pytanie nie powinno byc w przedszkolu ale:

Mam numery dokumentów zapisane w bazie jako charakter np. 00000125
Te numery muszą kolejno narastać i o ile nie mam problemu z obliczeniem jaki ma być kolejny nr to jest problem by go zapisać w bazie na odpowiednich miejscach tzn:
Jeśli wynikiem jest np. 99 to zapisuje mi w bazie jako 99 a powinien jako 0000099 bo ta kolumna jest charakter ( wypełnia od lewej ).
Napisałem funkcję która przed wynik obliczeń dołoży ciąg „0” ale nie wiem jak połączyć te zera z wynikiem by powstał ciąg znaków który będę mógłzabisac do bazy.
Mam:

  1. function f_model_numer_dok_nastepny($filia,$kodins)
  2. {
  3. $db = connect($filia);
  4. $query = "select CAST(serbloczki.nrdokdo AS integer)-serbloczki.pozostalo+1 numernastepny
  5. FROM
  6. public.serbloczki,
  7. public.pracownicy
  8. WHERE
  9. serbloczki.kodpuz = pracownicy.kodpuz AND
  10. ipracownicy.kodins = '".$kodins."';";
  11. $result = pg_query($query) or die('Nieprawidłowe zapytanie: ' . pg_last_error());
  12. $line = pg_fetch_array($result, null, PGSQL_ASSOC);
  13. if ($line < 10)
  14. {
  15. $line = $line['numernastepny'];//wynikiem ma być np 0000009 zrobiłem np. $line = ‘00000’. $line = $line['numernastepny'].; ale oczywiście nie działa…
  16. }
  17. elseif ($line < 100)
  18. {
  19. $line = $line['numernastepny'];//wynikiem ma być np 0000099
  20. }
  21. elseif ($line < 1000)
  22. {
  23. $line = $line['numernastepny'];//wynikiem ma być np 0000999
  24. }
  25. elseif ($line < 10000)
  26. {
  27. $line = $line['numernastepny'];//wynikiem ma być np 0009999
  28. }
  29. elseif ($line < 100000)
  30. {
  31. $line = $line['numernastepny'];//wynikiem ma być np 0099999
  32. }
  33. elseif ($line < 1000000)
  34. {
  35. $line = $line['numernastepny'];//wynikiem ma być np 0999999
  36. }
  37. return $line['numernastepny'];
  38. }
  39.  
  40.  


Czy ma ktoś pomysł jak to zapisać?
A może jest inny niż powyższy pomysł na zapisanie w char cyfr od prawej?

Ten post edytował Stratoliner 11.03.2013, 08:12:11
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:25