Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wyszukiwanie po nipie
Forum PHP.pl > Forum > Przedszkole
trucksweb
mam taki kod do obslugi wyszukiwania firmy po numerze NIP. (pole nip w bazie danych to varchar)

  1. <?php
  2. SELECT id, nazwa, MATCH (nip) AGAINST '666-55-555-55' FROM klienci
  3. ?>


i niesttey nie dziala bo wyswietla mi wszystkich klientow z wynikiem zapytania MATCH 0 - mimo, ze jest klient o podanym nipie

ktos wie czemu ?
Kicok
Widziałem już na tym forum kwiatki typu:
  1. WHERE user LIKE 'Adaś'

ale używanie FULLTEXT-a do czegoś takiego to już przegięcie ;]


Po pierwsze FULLTEXT się do takich celów nie nadaje
Po drugie LIKE też nie
Po trzecie zapomniałeś o WHERE
Po czwarte zapoznaj się z operatorem porównania: =
trucksweb
  1. <?php
  2. SELECT id,nip FROM klienci WHERE MATCH (nip) AGAINST ('".$_GET['nip'] . "' IN BOOLEAN MODE) ORDER BY MATCH (nip) AGAINST ('".$_GET['nipt']."'
  3. IN BOOLEAN MODE) DESC
  4. ?>



troche zmieniony kod, wyszukuje poprawnie tylko jesli nip jest podany jako ciag cyfr, natomiast gubi sie przy postaci ze " - " w numerze.

//
i nie chce wyszukac tylko i wylacznie jednego klienta, a wszystkich z podobnymi nipami np. gdy podam 666-
phpion
Weź sobie do serca to, co napisał ~Kicok...
trucksweb
Cytat
ale używanie FULLTEXT-a do czegoś takiego to już przegięcie ;]


Po pierwsze FULLTEXT się do takich celów nie nadaje
Po drugie LIKE też nie
Po trzecie zapomniałeś o WHERE
Po czwarte zapoznaj się z operatorem porównania: =


czyli co mi pozostaje ?
phpion
  1. SELECT id, nazwa FROM klienci WHERE nip='666-55-555-55'

blinksmiley.gif
trucksweb
u mnie to nie przejdzie- skrypt MUSI wyszukiwac wielu klientow i pod roznymi postaciami numerow nip: np. 666-666-66-66 i 666-66-666-66
Kicok
Wywal wszystkie znaki inne niż cyfry z nipów - będzie się łatwiej szukało.


A co do tych minusów w FULLTEXT to działają one podobnie jak wyszukiwarka google, czyli:
'eee +ddd -bbb' oznacza "Znajdź wiersze w których WYSTĘPUJE "eee" oraz WYSTĘPUJE "ddd" oraz NIE WYSTĘPUJE "bbb"
SirZooro
Z tego co pamiętam jedna forma NIP-ów jest nadawana osobom prywatnym (3-3-2-2), a druga firmom (3-2-2-3), więc po zwalidowaniu że NIP jest poprawny (opis algorytmu jest chociażby na Wikipedii) możesz go w takiej postaci zapisać do bazy i potem go tak samo szukać . Możesz też w ogóle wyrzucić pauzy i zapisać to jako ciąg cyfr - tak też to będzie działać, tylko że stracisz informacje czy kontrahent jest firmą czy osobą (znam jeden system gdzie tak to jest zrobione).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.