Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z strlen
dopal
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 9.02.2009

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


Witam,

Mam taki problem. Pobieram sobie z bazy ( niestety nie moja, nie mam wpływu na jej strukturę ) dane na podstawie poniższego zapytania.
  1. $query3a="SELECT DADWNZ, DADWIM, DADWPS FROM OSOBY WHERE ID='$id_gen'";
  2. $result3a = odbc_exec($connect, $query3a) or die( odbc_error());
  3.  
  4. $naz_bk1a = trim(odbc_result($result3a, 1));
  5. $imi_bk1a = trim(odbc_result($result3a, 2));
  6.  
  7.  
  8. $pes_bka1 = trim(odbc_result($result3a, 3));
  9.  

Problem pojawia się przy $pes_bka1. Zmienna ta pobiera pole pesel z tabeli. Gdy pesel był w postaci 11 cyfr np. 98010112345 nie było problemu. Problem pojawiał się z osobami urodzonymi w roku 2000 i kolejnymi latami, gdyż na początku peselu
widnieją cyfry 00 np. 00110112345, a w zmiennej wyświetla się 110112345.

wiec pomyślałem, że będę zliczał znaki i dodawał brakujące 0 na początku
  1.  
  2. if (strlen ($pes_bka1==11) ){
  3.  
  4. $r_tekst = '00'.$pes_bka1.'';
  5. }
  6. elseif (strlen ($pes_bka1==10)){
  7.  
  8. $r_tekst = '0'.$pes_bka1.'';
  9. }
  10. elseif (strlen ($pes_bka1==9)){
  11.  
  12. $r_tekst = '0'.$pes_bka1.'';
  13. }
  14. else {
  15.  
  16. $r_tekst = ''.$pes_bka1.'';
  17. }
  18.  
  19. echo $r_tekst;
  20.  


Ale przy takim zapisie mi to niestety nie działa i wyświetla taką ilość znaków jak pobrał z bazy. Ktoś wie w czym może być problem lub jak to inaczej zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


http://php.net/manual/en/function.str-pad.php
https://dev.mysql.com/doc/refman/5.7/en/str...l#function_lpad

Zmień typ pola na znakowy.
Go to the top of the page
+Quote Post
dopal
post
Post #3





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 9.02.2009

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


Cytat(trueblue @ 23.01.2018, 10:04:32 ) *

Jesli chodzi o zmianę typu pola w bazie, to nie mogę tego zrobić.

Jeśli robię
  1. echo strlen ($pes_bka1);

To wyświetla mi się zliczona ilość znaków ze zmiennej np. 11 czy 9
Pytanie dlaczego przy stosowaniu warunków nie są wprowadzane zmiany i dodane np. 00

Ten post edytował dopal 23.01.2018, 11:02:00
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 04:33