hice un script para una pagina de numeros de serie, pero se supone ke los resultados de la buskeda deben paginarse, mostrar solo 20 resultados por pagina, al parecer tengo un problema kon el kodigo he intentado kambiar todo pero nada

Código PHP:
<?
require("config.php");
include("header.html");
$TAMANO_PAGINA = 20;
$soft = "";
if ($_GET["soft"]!=""){
$txt_soft = $_GET["soft"];
$soft = " where programa like '%" . $txt_soft . "%'";
}
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;
}
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);
$sql = "select * from seriales " . $soft;
$rs = mysql_query($sql,$con);
$num_total_registros = mysql_num_rows($rs);
echo "Se han encontrado " . $num_total_registros . " resultados<br>";
if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i)
echo $pagina . " ";
else
echo "<a href='seriales.php?pagina=" . $i . "&soft=" . $txt_soft . "'>" . $i . "</a> ";
}
}
$sql = "select * from seriales " . $soft . " limit " . $inicio . "," . $TAMANO_PAGINA;
$rs = mysql_query($sql); ?>
<table width=100% align=center>
<tr bgcolor="bbbbbb" align=center>
<td><b>Programa</b></td>
<td><b>Version</b></td>
<td><b>Serial</b></td>
</tr>
<?
$num_fila = 0;
while ($fila=mysql_fetch_object($rs)){
echo "<tr> ";
if ($num_fila%2==0)
echo "<bgcolor=ffffff";
else
echo "<bgcolor=d0d0d0'";
echo ">";
?>
<td><?echo $fila->programa;?></td>
<td><?echo $fila->version;?></td>
<td><?echo $fila->serial;?></td>
</tr>
<?
$num_fila++;
}
mysql_free_result($rs);
mysql_close($con);
include("footer.html");
?>
</table>
Agradeceria su ayuda
