PHP - No cpnsigo paginar PHP+SQL SERVER 2005 !!!!

   
Vista:

No cpnsigo paginar PHP+SQL SERVER 2005 !!!!

Publicado por joanett (1 intervención) el 13/05/2010 08:48:54
Buenas,
tengo un problema que ya no se que hacer. A ver, me explico. El usuario realiza una consulta entre dos fechas y al enviar, tengo que muestre los datos en tablas de 10 elementos, y entonces ahi entra la super paginacion. En el pies tengo que me muestra las paginas de manera que al picar sobre la pagina que fuera pues me mostrara los datos que toquen. Bien, la primera pantalla me muestra bien los 10 resultados, pero la segunda, solo me muestra uno y se rata del ultimode la primera pagina, y en la tercera ya no me muestra nada. Vale decir que es mi primer proyecto en PHP. Asi que agradeceria que por favor alguien me dijera algo pues solo me queda eso para presentarlo. Pongo el codigo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="parte.css" rel="stylesheet" type="text/css" />
<?php
session_start();
date_default_timezone_set('Europe/Madrid');
$nombre=($_SESSION['User']);
//---------Conversión de fechas--------------------//
$data_ini=($_GET['data_ini']);
$data_fin=($_GET['data_fin']);
$fechaini=$data_ini;
$fechafin=$data_fin;
include ('mysqlog.php');
include ('mssql.php');
$bd_log = cmysqlog();
$bd_sql = cmssql();
//-----------------------------------------------------//
$query_bd_log = mysql_query ("SELECT * FROM clientes WHERE codcli=$nombre",$bd_log);
//
//
$resultado = mssql_query("SELECT * FROM albaran WHERE codcli=$nombre AND fechalb BETWEEN '$fechaini' AND '$fechafin'",$bd_sql);
$numeroderegistros=mssql_num_rows($resultado);
$tam_pag=10;
$numPags=ceil($numeroderegistros/$tam_pag);
if(!isset($pagina))
{
$pagina=1;
}

$limitInf=($pagina-1)*$tam_pag;

$resultado = mssql_query("SELECT * FROM (SELECT *, ROW_NUMBER() OVER (ORDER BY numalb) as lila FROM albaran WHERE codcli=$nombre AND fechalb BETWEEN '$fechaini' AND '$fechafin') as alias WHERE lila BETWEEN '$limitInf' AND '$tam_pag'",$bd_sql);

$row2 = (mysql_fetch_array($query_bd_log));

if (!$query_bd_log) {
$message = 'Error en la consulta: ' . mysql_error() . "\n";
die($message);
}
if (!$resultado) {
$message = 'Error en la consulta: ' . mssql_error() . "\n";
die($message);
}
?>
<title>T-Logic Solutions. <?php echo $row2['nomcli'];?></title>
</head>
<body>
<div id="outer">
<div id="header">
<h1><img src="images/servicio-urgente.gif" /></h1>
<h2><?php echo "(".$numeroderegistros.")"; ?></h2>
</div>
<div id="menu">
<ul>

</ul>
</div>
<div id="content">
<div id="primaryContentContainer">
<div id="primaryContent">
<div class="box">
<h3>Resultados para <?php echo $row2['nomcli'];?>, entre las fechas <?php echo $fechaini;?> y <?php echo $fechafin;?> </h3><?php echo $numPags; ?>paginas
<div class="boxContent">
<br />
<?php
if ($numeroderegistros == 0){ echo "No se encontraron Datos!"; }
if ($fechafin<$fechaini){
echo "Fechas incorrectas";
}else{
?>
<table align="center">
<tr class="rowA">
<th>Fecha Albaran</th>
<th>Nº Albaran</th>
<th>I</th>
<th>Nombre destinatario y Poblacion</th>
<th>Estado</th>
<th>Ver</th>
</tr>
<?php
while ($row = mssql_fetch_array($resultado)){
$numalb=$row['numalb'];
$incidencia = $row["incidencia"];
$pod = $row["pod"];
$fechalb = $row["fechalb"];
$fechalb = new DateTime($fechalb);
$fechapod = $row["fechapod"];
$fechapod = new DateTime($fechapod);
$nomval = $row["nomrem"];
$numalb = $row["numalb"];
$albaran = $row["numalb"];
?>
<tr class="rowB">
<td align="center"><?php echo $fechalb->format('d/m/Y'); ?></td>
<td align="center"><?php echo $numalb; ?></td>
<td align="center"><?php if ( $incidencia == "S" )
{
echo ("<img src='images/incidencia.jpg'></td>");
}
elseif ( $incidencia == "F" )
{
echo ("<img src='images/incidencia-finalizada.jpg' />");
}
else
{
echo ("<img src='images/sin-incidencia.jpg' />");
} ?></td>
<td><?php echo $row['nomdest'] . ' - ' .$row['pobdest']; ?></td>
<td><?php
if($pod=="S")
{
echo ("<font color='green'>Entregado </font>");
}else{
echo ("<font color='red'>En Reparto</font>");}
?></td>
<td><?php echo ("<a href='valida_albaran_fecha.php?albaran=$numalb' TARGET='_blank' width='300' height='100'><img src='images/acceso-albaran.png' /></a>"); ?></td>
</tr>
<?php } ?>
</table>
<?php } ?>
<table align="center">
<td>
<?php
if ($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&data_ini=".$data_ini."&data_fin=".$data_fin."'>";
echo "anterior";
echo "</a> ";
}
for ($i=1;$i<=$numPags;$i++)
{
if ($i==$pagina)
{
echo "<b>".$i."</b>";
}
else{
echo "<a class='p' href='".$_SERVER['PHP_SELF']."?pagina=".$i."&data_ini=".$data_ini."&data_fin=".$data_fin."'>";
echo "<b>".$i."</b>";
}
}
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER['PHP_SELF']."?pagina=".($pagina+1)."&data_ini=".$data_ini."&data_fin=".$data_fin."'>";
echo "siguiente";
echo "</a> ";
}
?>
</td>
</table>
</div>
</div>
</div>

</div>
<div id="secondaryContent">
<div class="box">
<h3>Menú</h3>
<div class="boxContent">
<ul>
<li><a href="seguimiento.php">Volver</a></li>
</ul>
</div>
</div>
</div>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No cpnsigo paginar PHP+SQL SERVER 2005 !!!!

Publicado por Cristian M (1 intervención) el 19/07/2010 23:52:51
porque no paginas en la consulta a la base de datos, busca informacion de paginar en sql es mas practico rapido y sencillo que hacerlo en php..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No cpnsigo paginar PHP SQL SERVER 2005 !!!!

Publicado por Juan Jose Moreno juanjo@bricomoral.com (1 intervención) el 16/08/2011 08:49:01
Ahi te envio una muestra de codigo que te permite paginar desde php usando solo sql valida para todas las versiones.

paginado con mssql



$consulta="WITH paginado AS
(
SELECT CardCode, CardName, Phone1, City, ROW_NUMBER() OVER ( ORDER BY CardName ) AS 'numeroDeFila'
FROM OCRD WHERE CardName like 'mo%'
)
SELECT *
FROM paginado
WHERE numeroDeFila BETWEEN 50 AND 60;";

espero que te sirva de ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar