bueno hace tiempo encontre un script para paginar con sql server aqui va la funcion
/ **************************************************
****/
/* Funcion paginar
* actual: Pagina actual
* total: Total de registros
* por_pagina: Registros por pagina
* enlace: Texto del enlace
* maxpags: El máximo de páginas a presentar simultáneamente (opcional)
* Devuelve un texto que representa la paginacion
*/
function paginar($actual, $total, $por_pagina, $enlace, $maxpags=0) {
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;
$minimo = $maxpags ? max(1, $actual-ceil($maxpags/2)): 1;
$maximo = $maxpags ? min($total_paginas, $actual+floor($maxpags/2)): $total_paginas;
if ($actual>1)
$texto = "<a href=\"$enlace$anterior\">«</a> ";
else
$texto = "<b>«</b> ";
if ($minimo!=1) $texto.= "... ";
for ($i=$minimo; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$maximo; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
if ($maximo!=$total_paginas) $texto.= "... ";
if ($actual<$total_paginas)
$texto .= "<a href=\"$enlace$posterior\">»</a>";
else
$texto .= "<b>»</b>";
return $texto;
}
esta la llamas desde el programa aqui va un ejemplo
<?php
session_start();
include("conexionbd.php");
$myconn = conectarse();
$color='#FFFFCC';
echo "<div align='center'><img src='imagenes/repasignacion.png' width='554' height='102'></div>";
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
$tampag = 2;
$reg1 = ($pag-1) * $tampag;
$result = mssql_query("SELECT PROYECTOS.Reg_ID, ASIGNACION_PRESUPUESTARIA.Asignacion_codigo, PROYECTOS.Pry_ID, PROYECTOS.Sub_sec_ID,PROYECTOS.Com_id, PROYECTOS.Pry_nom, PROYECTOS.Pry_financ, PROYECTOS.Pry_monto, PROYECTOS.Pry_FNDR, PROYECTOS.Pry_monto_RS, PROYECTOS.Pry_cos_tot, PROYECTOS.Pry_creacion
FROM ASIGNACION_PRESUPUESTARIA INNER JOIN PROYECTOS ON ASIGNACION_PRESUPUESTARIA.Reg_ID = PROYECTOS.Reg_ID AND ASIGNACION_PRESUPUESTARIA.Codigo = PROYECTOS.Pry_ID
WHERE (ASIGNACION_PRESUPUESTARIA.Asignacion_marca = 1) AND (ASIGNACION_PRESUPUESTARIA.Reg_ID = '$region') AND (PROYECTOS.Reg_ID = '$region')");
$total = mssql_num_rows($result);
if (mssql_num_rows($result)){
echo "Fecha Reporte :".date("m/d/y");
echo "<br>";
echo "<table border = '1'> \n";
echo "<tr>
<td align=center bgcolor='$color'>Region</b></td>
<td align=center bgcolor='$color'>Nº Asignacion</b></td>
<td align=center bgcolor='$color'>Codigo Proyectos</b></td>
<td align=center bgcolor='$color'>Codigo Subsector</b></td>
<td align=center bgcolor='$color'>Codigo Comuna</b></td>
<td align=center bgcolor='$color'>Nombre Proyecto</b></td>
<td align=center bgcolor='$color'>Financiamiento</b></td>
<td align=center bgcolor='$color'>Monto Asignado</b></td>
<td align=center bgcolor='$color'>Monto FNDR</b></td>
<td align=center bgcolor='$color'>Monto RS</b></td>
<td align=center bgcolor='$color'>Costo Total</b></td>
<td align=center bgcolor='$color'>Año Creacion</b></td></tr>\n";
for ($i=$reg1; $i<min($reg1+$tampag, $total); $i++) {
mssql_data_seek($result, $i);
$row = mssql_fetch_array($result);
echo "<tr><td>".$row["Reg_ID"]."</td>".
"<td>".$row["Asignacion_codigo"]."</td>".
"<td>".$row["Pry_ID"]."</td>".
"<td>".$row["Sub_sec_ID"]."</td>".
"<td>".$row["Com_id"]."</td>".
"<td>".$row["Pry_nom"].
"<td>".$row["Pry_financ"]."</td>".
"<td>".$row["Pry_monto"]."</td>".
"<td>".$row["Pry_FNDR"]."</td>".
"<td>".$row["Pry_monto_RS"]."</td>".
"<td>".$row["Pry_cos_tot"].
"<td>".$row["Pry_creacion"].
"</td></tr> \n";
}
echo "</table> \n";
echo paginar($pag, $total, $tampag, "cliente.php?pag=");
}
else{
echo "¡ No se ha encontrado ningún registro !";}
echo "<div align='center'><a href ='reporasignacion.php'>Volver al Menu </a></div>";
mssql_close($myconn) ;
?>
cualquier cosa me avisas a mi me funciona perfectamente