ДА! ДА! ДА!!!!!!!!!!! Спасибо! всё рулит! вот ниже исправления:
<? 
    $connection = mysql_connect("localhost", "root", ""); 
    $db = mysql_select_db ("dbase"); 
$curr_page=$_GET[\'page\']; 
$po="6"; 
$limit=$_GET[\'page\']; 
if ($curr_page==1) {$s=0;} else {$a=$limit-1;$s=$a*$po;} 
    $query = "SELECT * FROM songs WHERE date = \'2004-11-27\' ORDER BY si_id LIMIT $s,$po"; 
    $result = mysql_query($query, $connection); 
    while ($rows = mysql_fetch_array($result)) 
{ 
echo"<a href=\\"$rows[so_link]\\">$rows[so_name]</a>
"; 
} 
     
    $query = "SELECT * FROM songs WHERE date = \'2004-11-27\'"; 
    $result = mysql_query($query, $connection); 
    $posts=mysql_numrows($result); 
[B]
$npages=ceil($posts/$po);
$cpages=$npages;
[/B]
// Воспользовавшись поиском нашел пример, постраничьного вывода: 
for ($i = 1; $i <= $cpages; $i++) 
   $pages[$i] = ($i == $curr_page) ? \'<b>\'.$i.\'</b>\' : \'<a href=\'.$_SERVER[\'PHP_SELF\'].\'?page=\'.$i.\'>\'.$i.\'</a>\'; 
echo \'Страницы: \'.join(\', \', $pages); 
?>