Foros del Web » Programando para Internet » PHP »

Ayuda con paginador

Estas en el tema de Ayuda con paginador en el foro de PHP en Foros del Web. Hola a todos, espero que puedan ayudarme a este dolor de cabeza que tengo... tengo una consulta de 5 columnas que muestra cada 2... el ...
  #1 (permalink)  
Antiguo 10/08/2009, 14:07
 
Fecha de Ingreso: marzo-2009
Mensajes: 32
Antigüedad: 15 años
Puntos: 0
Ayuda con paginador

Hola a todos, espero que puedan ayudarme a este dolor de cabeza que tengo...



tengo una consulta de 5 columnas que muestra cada 2... el problema es que si solo tengo en la db 2 datos (id 1 y id 2) muestra su tabla correctamente pero muestra SIGUIENTE ULTIMO y si selecciono no aparece nada... quiero quitar que solo aparezca únicamente después de cada 10 resultados... no se si me explique....

si tengo los DIEZ resultados funciona perfectamente bien

este paginador se lo agrege a una consulta en columnas les pongo el codigo
Código PHP:
$maximo_consulta 2;
$iniciar_consulta 0;
if (isset(
$_GET['iniciar_consulta'])) {
$iniciar_consulta $_GET['iniciar_consulta'];
}
$empezar_fila $iniciar_consulta $maximo_consulta;
$consulta1 "SELECT *  FROM datos WHERE seccion = 'aviones' and categoria = 'varios' ORDER BY id";


if (
$_GET['buscar']) 
{
 
$buscar $_GET['buscar'];  
 
 
$consulta1 ="SELECT * FROM datos WHERE marca LIKE \"%$buscar%\" OR modelo LIKE  \"%$buscar%\" OR seccion LIKE  \"%$buscar%\" OR categoria LIKE  \"%$buscar%\" ORDER BY id DESC" ;
}



$limite_fila1 sprintf("%s LIMIT %d, %d"$consulta1$empezar_fila$maximo_consulta);
$resultado1 mysql_query($limite_fila1$con) or die(mysql_error());
$fila1 mysql_fetch_assoc($resultado1);


$limite_fila2 sprintf("%s LIMIT %d, %d"$consulta1$empezar_fila+2$maximo_consulta);
$resultado2 mysql_query($limite_fila2$con) or die(mysql_error());
$fila2 mysql_fetch_assoc($resultado2);

$limite_fila3 sprintf("%s LIMIT %d, %d"$consulta1$empezar_fila+4$maximo_consulta);
$resultado3 mysql_query($limite_fila3$con) or die(mysql_error());
$fila3 mysql_fetch_assoc($resultado3);

$limite_fila4 sprintf("%s LIMIT %d, %d"$consulta1$empezar_fila+6$maximo_consulta);
$resultado4 mysql_query($limite_fila4$con) or die(mysql_error());
$fila4 mysql_fetch_assoc($resultado4);

$limite_fila5 sprintf("%s LIMIT %d, %d"$consulta1$empezar_fila+8$maximo_consulta);
$resultado5 mysql_query($limite_fila5$con) or die(mysql_error());
$fila5 mysql_fetch_assoc($resultado5);


if (isset(
$_GET['total_de_resultados'])) {
$total_de_resultados $_GET['total_de_resultados'];
} else {
$all_resultado1 mysql_query($consulta1);
$total_de_resultados mysql_num_rows($all_resultado1);
}
$totalPages_resultado1 ceil($total_de_resultados/$maximo_consulta)+1;

$queryString_resultado1 "";
if (!empty(
$_SERVER['QUERY_STRING']))
{
$params explode("&"$_SERVER['QUERY_STRING']);
$newParams = array();
foreach (
$params as $param) {
if (
stristr($param"iniciar_consulta") == false &&
stristr($param"total_de_resultados") == false) {
array_push($newParams$param);
}
}
if (
count($newParams) != 0)
{
$queryString_resultado1 "&" htmlentities(implode("&"$newParams));
}
}
$queryString_resultado1 sprintf("&total_de_resultados=%d%s"$total_de_resultados$queryString_resultado1);
?> 
datos a mostrar

Código PHP:

<?php do {
if (
mysql_num_rows($resultado1) == 0) { echo " <br><br><font color='#ffcc00'> No hay informaci&oacute;n en esta seccion </font>";

}
else{
?>

MUESTRA TABLA 1 CON DOS RESULTADOS  ID 1 , ID 2

<?php }} while ($fila1 mysql_fetch_assoc($resultado1)); ?>
</tr>

<tr>
<?php do {

if (
mysql_num_rows($resultado2) == 0) {

}
else{
 
?>
 
MUESTRA TABLA 2 CON LOS SIGUIENTES 2 RESULTADOS ID 3 ID 4

<?php }} while ($fila2 mysql_fetch_assoc($resultado2)); ?>
</tr>

<tr>
<?php do {
if (
mysql_num_rows($resultado3) == 0) {

}
else{
 
?>

MUESTRA TABLA 3 CON LOS SIGUIENTES 2 RESULTADOS ID 5 ID 6

<?php }} while ($fila3 mysql_fetch_assoc($resultado3)); ?>
</tr>
<tr>
<?php do {
if (
mysql_num_rows($resultado4) == 0) {

}
else{

 
?>

MUESTRA TABLA 4 CON LOS SIGUIENTES 2 RESULTADOS ID 7 ID 8

<?php } }while ($fila4 mysql_fetch_assoc($resultado4)); ?>
</tr>


<tr>
<?php do {


if (
mysql_num_rows($resultado5) == 0) {

}
else{
 
?>
MUESTRA TABLA 5 CON LOS SIGUIENTES 2 RESULTADOS ID 9 ID 10
<?php } }while ($fila5 mysql_fetch_assoc($resultado5)); ?>
aqui el problema... si tengo en mi registro solo dos campos (una columna activada) dice siguiente y ultimo

pero si tengo las 5 columnas activas que da 10 resultados funciona bien, lo que quiero es que si no hay mas de 10 columnas no muestre siguiente...

Código PHP:
<table border="0" align="center">
<tr>
<td align="center">
<div align="center">
<?php if ($iniciar_consulta 0) { // Se muestra si no es la primera página ?>
<a href="<?php printf("%s?iniciar_consulta=%d%s"$currentPage0$queryString_resultado1); ?>" target="content" class="paginador style5">Primero</a>
<?php // Se muestra si no es la primera página ?>
</div></td>
<td align="center">
<div align="center">
<?php if ($iniciar_consulta 0) { // Se muestra si no es la primera página ?>
<a href="<?php printf("%s?iniciar_consulta=%d%s"$currentPagemax(0$iniciar_consulta 5), $queryString_resultado1); ?>" target="content" class="paginador style5">Anterior</a>
<?php // Se muestra si no es la primera página ?>
</div></td>
<td align="center">
<div align="center">
<?php if ($iniciar_consulta $totalPages_resultado1) { // Se muestra si no es la última página ?>
<a href="<?php printf("%s?iniciar_consulta=%d%s"$currentPagemin($totalPages_resultado1$iniciar_consulta 5), $queryString_resultado1); ?>" target="content" class="paginador style5">Siguiente</a>
<?php // Se muestra si no es la última página ?>
</div></td>
<td align="center">
<div align="center">
<?php if ($iniciar_consulta $totalPages_resultado1) { // Se muestra si no es la última página ?>
<a href="<?php printf("%s?iniciar_consulta=%d%s"$currentPage$totalPages_resultado1$queryString_resultado1); ?>" target="content" class="paginador style5">&Uacute;ltimo</a>
<?php // Se muestra si no es la última página ?>
</div></td>
</tr>
</table>




 </td></tr></table>
gracias por su ayuda...
  #2 (permalink)  
Antiguo 11/08/2009, 10:12
Avatar de Ing_FOFO  
Fecha de Ingreso: agosto-2008
Ubicación: Guatemala
Mensajes: 104
Antigüedad: 15 años, 8 meses
Puntos: 8
Respuesta: Ayuda con paginador

Que tal.

Bueno vamos a ver si te entendi, dado que dices columnas y creo que quieres decir filas o tuplas.

Una consulta te devuelve 0 o mas filas o tuplas y queres hacer un paginador que te permita hacer la navegacion.

Yo lo haria asi:

Código PHP:
 $sql  " select  ........................."// aca tu consulta
 
$RsResultado=&$Conexion->Execute($sql);
 
$RsResultadoFilas=$RsRecursos->RecordCount(); 
ahora tienes en la variable $RsResultadoFilas la cantidad de filas que te devolvió tu consulta con esto puedes poner visibles o invisibles tus flechas de navegacion, es decir con un if puedes mandarlas a pintar a tu html o no

Espero te sirva
Saludos
__________________
Si te ayude.... regalame un poquito de karma!!!

Los intelectuales resuelven los problemas; los genios ,los evitan.
Albert Einstein (1879-1955)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:04.