Paginar consulta a SqlServer con mssql
Hola a todos,
Necesito urgentemente paginar una consulta a SqlServer utilizando las funciones de mssql, he mirado por todas partes pero no he visto una solucion que funcione.
Muchas gracias de antemano.
Necesito urgentemente paginar una consulta a SqlServer utilizando las funciones de mssql, he mirado por todas partes pero no he visto una solucion que funcione.
Muchas gracias de antemano.
Esta paginacion es para mysql pero de igual forma solo cambias los parametros a los utilizados para sqlserver
pagina de criterio de busqueda
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Paginación con PHP</title>
</head>
<body>
<form action="paginacion.php" method="get">
Criterio de búsqueda:
<input type="text" name="criterio" size="22" maxlength="150">
<input type="submit" value="Buscar">
</form>
</body>
</html>
fin de la pagina de criterio de busqueda
inicio del script de busqueda y paginacion
//conecto con la base de datos
$conn = mysql_connect("localhost","user","pass");
mysql_select_db("DB",$conn);
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = " where artista like '%" . $txt_criterio . "%'";
}
//Limito la busqueda
$TAMANO_PAGINA = 10;
//examino la página a mostrar y el inicio del registro a mostrar
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;
}
//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "select * from songs " . $criterio;
$rs = mysql_query($ssql,$conn);
$num_total_registros = mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);
//pongo el número de registros total, el tamaño de página y la página que se muestra
echo "Número de registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>";
if ($total_paginas > 0)
{
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";
//construyo la sentencia SQL
$ssql = "select * from songs " . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA;
//echo $ssql . "<p>";
$rs = mysql_query($ssql);
// aqui se imprimen los resultados ///////////////////////////////////////////////
while ($fila = mysql_fetch_object($rs)){
echo $fila->campo . "<br>";
}
// aqui se imprimen los resultados ///////////////////////////////////////////////
mysql_free_result($rs);
mysql_close($conn);
echo "<p>";
//muestro los distintos Ãndices de las páginas, si es que hay varias páginas
if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i)
//si muestro el Ãndice de la página actual, no coloco enlace
echo $pagina . " ";
else
//si el Ãndice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo "<a href='paginacion.php?pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> ";
}
}
}
else
{
echo "No se encontraron resultados con el criterio $txt_criterio";
}
//muestro un formulario para marcar el criterio
fin del script
salu2
pagina de criterio de busqueda
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Paginación con PHP</title>
</head>
<body>
<form action="paginacion.php" method="get">
Criterio de búsqueda:
<input type="text" name="criterio" size="22" maxlength="150">
<input type="submit" value="Buscar">
</form>
</body>
</html>
fin de la pagina de criterio de busqueda
inicio del script de busqueda y paginacion
//conecto con la base de datos
$conn = mysql_connect("localhost","user","pass");
mysql_select_db("DB",$conn);
//inicializo el criterio y recibo cualquier cadena que se desee buscar
$criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = " where artista like '%" . $txt_criterio . "%'";
}
//Limito la busqueda
$TAMANO_PAGINA = 10;
//examino la página a mostrar y el inicio del registro a mostrar
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina=1;
}
else {
$inicio = ($pagina - 1) * $TAMANO_PAGINA;
}
//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "select * from songs " . $criterio;
$rs = mysql_query($ssql,$conn);
$num_total_registros = mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);
//pongo el número de registros total, el tamaño de página y la página que se muestra
echo "Número de registros encontrados: " . $num_total_registros . "<br>";
echo "Se muestran páginas de " . $TAMANO_PAGINA . " registros cada una<br>";
if ($total_paginas > 0)
{
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";
//construyo la sentencia SQL
$ssql = "select * from songs " . $criterio . " limit " . $inicio . "," . $TAMANO_PAGINA;
//echo $ssql . "<p>";
$rs = mysql_query($ssql);
// aqui se imprimen los resultados ///////////////////////////////////////////////
while ($fila = mysql_fetch_object($rs)){
echo $fila->campo . "<br>";
}
// aqui se imprimen los resultados ///////////////////////////////////////////////
mysql_free_result($rs);
mysql_close($conn);
echo "<p>";
//muestro los distintos Ãndices de las páginas, si es que hay varias páginas
if ($total_paginas > 1){
for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i)
//si muestro el Ãndice de la página actual, no coloco enlace
echo $pagina . " ";
else
//si el Ãndice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
echo "<a href='paginacion.php?pagina=" . $i . "&criterio=" . $txt_criterio . "'>" . $i . "</a> ";
}
}
}
else
{
echo "No se encontraron resultados con el criterio $txt_criterio";
}
//muestro un formulario para marcar el criterio
fin del script
salu2
