floor($records/$page_records) -> dlaczego zaokrąglasz liczbę stron w dół? Generalnie, wystarczy przyjąć założenie, że strona 1 to tak naprawdę strona 0, czyli odjąć przy obliczeniach z mysql'a, poprawić logikę pętli na dole strony.
$page = (int) $_GET['page']; //zakres (1-n)
$onpage = 3;
zapytanie query:
"LIMIT index, ile" gdzie index wskazuje na element, od którego ma zacząć.
dla danych $page = 1, $onpage = 3:
LIMIT ($page-1*$onpage), $onpage