I usually do it much like google, for example show only 10 pages at a time.
For that you would need to find out what page the user is calling, and then find the lower page and upper page limits.
Then just run the same loop, but only between the limits.
For example:
$lowlimit = $curpage - 5;
$highlimit = $curpage + 5;
if ($lowlimit < 1) {$lowlimit = 1}
if ($highlimit > $dvd_pages) {$highlimiit = $dvd_pages}
for($i = $lowlimit; $i <= $highlimit; $i++){
...
}
All you then need to remember is to add buttons so the user can either go straight to the end or the begining very easily.