io penso che il problema non sia lì: tu dici che il sistema ha 4 articoli e che vengono riportati in 4 pagine... il che è come dire che $total_pages sia sbagliato.

Fai una cosa: un po' di debug facendo echo(...) di ogni query e delle varie variabili che prendono parte allo script