You can't start retrieving results from position -20 in the resultset. the first entry in the results is position 1 so you are 21 entries before the first one with your query.
The line setting the start positiion to -20 would be:
$startResults = ($page - 1) * $resultsPerPage;
presumably $resultsPerPage is 20 and $page is 0 giving -20. If that is the case then the start position should be set using:
$startResults = ($page * $resultsPerPage) +1;