Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Porównywanie NIP z formularza i tabeli
pawel007
post 11.10.2007, 16:40:03
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.10.2003
Skąd: Kraków

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


Witam!

Tak jak w temacie potrzebuję porównać numer NIP z bazy z tym ktory jest przesyłany z formularza, w celu weryfikacji czy użytkownik znajduje się uż w systemie - jesli tak to błąd jeśli nie to sukces.

Oczywiście nie mam z tym problemu:) Problem natomiast pojawia się w momencie gdy w bazie chcę przetrzymywać NIP w wersji oryginalnej - czyli z kreskami (w różnych układach - czyli tak jak wpisze uzytkownik) i następnie przy rejestracji kolejnego użytkownika chce porownać czy taki NIP nie znajduje się w bazie.

Jak to zrobić?

Próbowałem poprzez skrypt php:
1) pobranie wszystkich nip-ów z bazy do tablicy
2) usunięcie kresek z nipów
3) porownanie każdego elementu z tablicy z nipem z formularza

Próbuje od kilku chwil zbudować zapytanie, które zniweluje powyższy sposób i rozwiąże problem poprzez jedno zapytanie.

Proszę o pomoc w konstrukcji zapytania , jeśli jest to oczywiście rozwiązywalne.


--------------------
Początki zawsze sa trudne...
Go to the top of the page
+Quote Post
dr_bonzo
post 11.10.2007, 17:04:11
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


1. w bazie zapisujesz nip bez zadnych kresek, spacji itp
2. przyd porownaniem, nip od usera sprowadzasz do postaci samych cyfr
3. i po problemie

no i nie ma problemu zeby zrobic

select na bazie where nip = $nip_bez_kresek

Ten post edytował dr_bonzo 11.10.2007, 17:05:01


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
pawel007
post 11.10.2007, 17:37:05
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.10.2003
Skąd: Kraków

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


Cytat
1. w bazie zapisujesz nip bez zadnych kresek, spacji itp


Własnie tak już zrobiłem, a chce mieć z kreskami i dalej porównywać.


--------------------
Początki zawsze sa trudne...
Go to the top of the page
+Quote Post
devnul
post 11.10.2007, 17:59:29
Post #4





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


skoro tak zrobiles to zakładam ze masz jakis konkretny format kreskowania (skoro tak to sprowadzasz nip do tego formatui na tym się sprawa konczy). wystarczy wtedy jak wyzej sprowadzic nip usera do tego samego formatu kreskowania


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
najtje
post 11.10.2007, 18:03:52
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 4.10.2007

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


Ten sposób który proponuje kolega jest dobry ale jak bardzo chcesz możesz wykonać select'a na podstawie wyrażenia regularnego.
Tutaj http://dev.mysql.com/doc/refman/5.0/en/regexp.html znajdziesz info niestety nie podam Ci gotowej formułki ale jak to Ci się uda to będziesz miał zapytanie postaci:
  1. SELECT * FROM users WHERE nip REGEXP '209(.?)00{1}16{1}700'

I to powinno ci zwrócić wiersz.wskazujący użytkownika.
Go to the top of the page
+Quote Post
pawel007
post 11.10.2007, 18:08:51
Post #6





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 9.10.2003
Skąd: Kraków

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


Dzięki devnul - w sumie naprowadzileś mie na rozwiązanie.

Nie potrzebnie kombinowałem z zapytaniem skoro mogę przetrzymywać bez kresek w bazie a w przypadku późniejszego wyświetlania "nakładać" na NIP maskę z kreskami i sprawa rozwiązana.

biggrin.gif


--------------------
Początki zawsze sa trudne...
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 05:34