Problema con PHP (paginación)

Hola a todos, me ha encantado esta web y foro, pero tengo unos problemas (he intentado de todo) y ni idea como solucionarlo.

Resulta que quiero utilizar un paginador para así no molestar a los usuarios con una fila ENOOOORME de artículos hacia abajo, tengo el código pero no es visualizado. Pondré el código de mi web para que vean y puedan ayudarme.

<?php

}

?>
<?php

if($_GET['categoria']!=""){

?>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  
  <tr class="secciones-centro">
    <td width="1"></td>
    <td valign="top"><div align="center">
      <?php

$b=mysql_query("select * FROM report WHERE categoria = '" . $_GET['categoria'] . "'");

$num = mysql_num_rows($b);

if($num==">0"){

?>
      No hay Reportajes disponibles
      <?php

}else{

?>
      Tenemos
      <?php

echo "$num";

?>
      Reportajes en esta categor&iacute;a [b][/b]
      <?php

}

?>
    </div>
        

</p>
      <div class="secciones-titulo"> Reportajes 
        de esta Categor&iacute;a
        </p>
        </div>
      


          <?

if (!$npp){ $npp=100;}; 

if (!$sp){ $sp=0; };

$cantidad=$npp;  

$inicial=$sp*$cantidad;

$a=mysql_query("select * FROM report WHERE categoria = '" . $_GET['categoria'] . "' ORDER by id DESC LIMIT ".$inicial.",100");

$Mysql = mysql_query("SELECT * FROM report WHERE categoria = '" . $_GET['categoria'] . "'");

$nreg=mysql_num_rows($Mysql);

$paginas=intval($nreg/$cantidad);

while ($c = mysql_fetch_array($a)) {
				$c_id = $c['id'];
				$c_categoria = $c['categoria'];
				$c_titulo = $c['titulo'];
				$c_fecha = $c['fecha'];	
?>
          <?echo urls_amigables($url); ?> <a href="reportaje-<?php echo $c_id; ?>-<?php echo urls_amigables("$c_titulo"); ?>-<?php echo urls_amigables("$c_fecha"); ?>.html">Reportaje <?php echo $c_titulo; ?> (<?php echo $c_fecha; ?>)

          </a>
          <title>
          <?php include ("title.php"); ?>
            Reportajes - <?php echo $c_categoria; ?></title>
          <a href="reportaje-<?php echo $c_id; ?>-<?php echo urls_amigables("$c_titulo"); ?>-<?php echo urls_amigables("$c_fecha"); ?>.html"><span class="programas">
          <?php

  }

  ?>
        </span></a></p>
      <?

 echo "<div align=center>";

  if ($sp>0){

      $ant=$sp-1;

      echo "<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=index.php?seccion=report&categoria=$_GET[categoria]&sp=$ant>Anterior</a></font>"."   ";

    }else{

      echo "<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\">Anterior</font>"."   ";

    };



  for ($i=0;$i<=$paginas;$i++){

    if ($i!=$sp) {

      echo ""."<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=index.php?seccion=report&categoria=$_GET[categoria]&sp=$i>$i</a></font>";

      }

    else {

      echo ""."<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\">$i</font>";

    }

  };

  if ($sp<$paginas){

      $sig=$sp+1;

      echo ""."<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=index.php?seccion=report&categoria=$_GET[categoria]&sp=$sig>Siguiente</a></font>"."   ";



    }else{



      echo ""."<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\">Siguiente</font>";

    };



  echo "</div>";



?></td>
    <td width="1" class="secciones-centro"></td>
  </tr>
</table>
<?php

}

?>


El punto es que la siguiente parte es la que falla:

<?
 echo "<div align=center>";
  if ($sp>0){
      $ant=$sp-1;
      echo "<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=index.php?seccion=report&categoria=$_GET[categoria]&sp=$ant>Anterior</a></font>"."   ";
    }else{
      echo "<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\">Anterior</font>"."   ";
    };
  for ($i=0;$i<=$paginas;$i++){
    if ($i!=$sp) {
      echo ""."<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=index.php?seccion=report&categoria=$_GET[categoria]&sp=$i>$i</a></font>";
      }
    else {
      echo ""."<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\">$i</font>";
    }
  };
  if ($sp<$paginas){
      $sig=$sp+1;
      echo ""."<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=index.php?seccion=report&categoria=$_GET[categoria]&sp=$sig>Siguiente</a></font>"."   ";
    }else{
      echo ""."<font size=2  face=\"Verdana, Arial, Helvetica, sans-serif\">Siguiente</font>";
    };
  echo "</div>";
?>

Sé que tiene relación con este:

<?

if (!$npp){ $npp=100;}; 

if (!$sp){ $sp=0; };

$cantidad=$npp;  

$inicial=$sp*$cantidad;

$a=mysql_query("select * FROM report WHERE categoria = '" . $_GET['categoria'] . "' ORDER by id DESC LIMIT ".$inicial.",100");

$Mysql = mysql_query("SELECT * FROM report WHERE categoria = '" . $_GET['categoria'] . "'");

$nreg=mysql_num_rows($Mysql);

$paginas=intval($nreg/$cantidad);

while ($c = mysql_fetch_array($a)) {
				$c_id = $c['id'];
				$c_categoria = $c['categoria'];
				$c_titulo = $c['titulo'];
				$c_fecha = $c['fecha'];	
?>

Si embargo no puedo hacer que se muestren por ejemplo 50 artículos y luego pasar a la página 2 para mostrar los 50 artículos más antiguos que vienen luego.

De antemano gracias por una posible respuesta, si hay código erróneo también me sería grato saber para arreglar el resto.