Skocz do zawartości

[PHP]Efektywny skrypt wyszukiwania w formularzu


dj.drezyna

Polecane posty

W Polsce jest często tak, że jak sobie nie pomożesz to nikt Ci nie pomoże...

 

Problem rozwiązał się jakoś, bo wpadłem na takie rozwiązanie:

 

Są pola: abc def i ghi.

Sprawdza się czy te pola są null. Jeżeli tak, to daje się zmienne wyszukujące wabc wdef i wghi na null i robi się ifa:

if ((abc == wabc) (def == wdef) (ghi == wghi)) { jakaś instrukcja; } W ten sposób otrzymuje się ify tylko przy danym polu i if zbiorczy co bardzo przyspiesza wyszukiwanie, bo parser nie musi przedzierać się przez if 2^(liczba pól)-1, a dodatkowo z dużą ilością pól uzyskuje się plik stosunkowo niewielki - u mnie reducja z 49 do 7 kB! (przy 8 polach)

Poniżej przedstawiam przykład z części mojego ifa:

 

if ($kalendarz == null) {
$wkalendarz = null;
$wosobne[7] = null;
}
else {
$wosobne[7] = $osobne[7];
$wkalendarz = $kalendarz;
}

if ($stacja == null) {
$wstacja = null;
$wosobne[9] = null;
}
else {
$wstacja = $stacja;
$wosobne[9] = $osobne[9];
}

if ($miasto == null) {
$wmiasto = null;
$wosobne[8] = null;
}
else {
$wmiasto = $miasto;
$wosobne[8] = $osobne[8];
}

if (($rok_od == null) and ($rok_do == null) and ($miesiac_od == null) and ($miesiac_do == null) and ($dzien_od == null) and ($dzien_do == null)) {
$wgranicag = 99990000;
$wgranicad = 1;
}
else {
$wgranicag = $granicag;
$wgranicad = $granicad;
}

if (($wosobne[7] == $wkalendarz)
and ($wosobne[9] == $wstacja)
and ($wosobne[8] == $wmiasto)
and (($daty <= $wgranicag) and ($daty >= $wgranicad)))
{ {include "Galera.php";} }

U W A G A !

 

Ważne jest zrobienie do każdej zmiennej dodatkowej zmiennej z jakimś tam przedrostkiem u mnie ,,w'', bo inaczej uzyska się efekt kasowania danych w prawdziwych zmiennych (Mi służy plik Spis_.csv, który na początku zbiera rekordy pasujące, a potem wyświetla je pętli for i jeżeli się tego nie zastosuje, to będzie problem polegający na tym, że rekordy nie wyszukiwane uzyskają wartość null)

Galeria przyrodnicza http://fotokrajobrazy.warmia.pl

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...