Sem tu brand new, więc proszę o wyrozumiałość

Zwyczajowo czytam i męczę kody do skutku (php mniej). W tym przypadku rozłożyłam ręcę i proszę o pomoc lub zrozumiałą wskazówkę.
Do rzeczy:
Plik php ma niby proste zadanie wyświetlać rekordy z bazy mysql wg zadanych kryteriów i dzielić na strony.
Wszystko wygląda dobrze tylko na stronie pierwszej. Na kolejnych baza pokazuje się "jak leci" bez ograniczeń "wcześniejszego filtrowania". Może to przez warunki? Jak mogłabym to poprawić?
Będę przeogromnie wdzięczna za pomoc.
I głębokie wejrzenie w kodowe oczy:
[To tylko wycinki większego kodu]
-----------------------------------------------------1 formularz----------------------------------
<form method='post' action='index.php'> <input type="checkbox" name="bialy" value="bialy" onchange='java script: document.form.submit();' /> <input type="checkbox" name="czarny" value="czarny" onchange='java script: document.form.submit();' /> <select name="w1" onchange='java script: document.form.submit();' width="200" style="width: 200px"> </select> <input type="submit" value="Wyszukaj" /> </form>
-----------------------------------------------------2 łączymy z bazą----------------------------------
łączymy z bazą
$_POST['w1']; $_POST['bialy']; $_POST['czarny']; $w1=$_POST['w1']; $bialy=$_POST['bialy']; $czarny=$_POST['czarny'];
-----------------------------------------------------warunki do zapytania----------------------------------
if ($w1=='----------') { $w1a=''; } if ($w1=='a') { $w1a='and `w1` = \'a\''; } if ($w1=='b') { $w1a='and `w1` = \'b\''; } if ($bialy=='bialy') { $bialya='and `bialy` = \'bialy\''; } else { $bialya=''; } if ($czarny=='czarny') { $czarnya='and `czarny` = \'czarny\''; } else { $czarnya=''; }
-----------------------------------------------------zapytanie----------------------------------
$perPage = 25; $page = (int) $_REQUEST['page']; if ($page < 1) { $page = 1; } } else { $page = 1; } $start = ($page - 1) * $perPage; $zapytanie = "SELECT * FROM `nazwabazy` WHERE $w1a $bialya $czarnya ORDER BY `nazwabazy`.`id` DESC limit $start, $perPage";
tu się wyświetlają dane....
-----------------------------------------------------paginacja----------------------------------
if ($prev==0) { } else { } { } // zamykamy połączenie ?>