Senza offese, ma vedo 3 query di SELECT successive, senza neanche un mysql_free_result.
Non vedo neanche un ceil() per stabilire con la prima query, quante siano le pagine massime che possono essere restituite.
Non ho letto bene tutto lo script, ma a primo sguardo lo trovo piuttosto farraginoso.
Se cercate in questo forum per la parola "paginatore", sono convinto che trovate qualcosa di molto migliore.