Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2013, 09:01
Avatar de loncho_rojas
loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Paginación y resultados en columnas PHP - No trae primer registro

Buenas, asi como lo describo.. estoy haciendo una consulta a la BD desde donde estoy trayendo todos los registros para un catálogo. Como el catálogo es una especie de "librero" parecido a los iBooks en aspecto, necesito

A- Paginarlo --> Ya lo logré
B- Colocar los registros en filas y columnas de a 4 libros --> Ya lo logré..

El problema es que no se en qué parte o porqué conflictúan los codigos de paginación y el de ordenamiento de columnas, ya que si tengo 32 libros (por ejemplo) solo me muestra 31... es decir, el primer registro siempre se pierde y ya intente con do-while, while y aun así no me lo muestra al registro 1 si es que es ASC o al ultimo registro si es DESC.. mi código:

EN LA CABECERA:
Código PHP:

<?php
include("../co/connect.php");

//Inicio del paginador
    
$currentPage $_SERVER["PHP_SELF"];
    
    
// este numero es el numero de resultados que quieren que se vean por pagina 
    //pueden poner algo asi: $maxRows_Rs = 6; para ver paginas con 6 resultados
    
$maxRows_Rs 17;// pongo asi o sino, no me trae los 16 primeros
    
    
$pageNum_Rs 0;
    
        if (isset(
$_GET['pageNum_Rs'])) {
        
          
$pageNum_Rs $_GET['pageNum_Rs'];
          
        }
        
    
$startRow_Rs $pageNum_Rs $maxRows_Rs;
    
    
mysql_select_db($db_nombre,$conn);

//paginador


$sql"SELECT id, nombre, imagen FROM productos WHERE id_categoria=10 ORDER BY id ASC ";

?>

RESULTADOS

Código PHP:

<?php

                
                
                
                
                
//paginador
                            
$query_limit_Rs sprintf("%s LIMIT %d, %d"$sql$startRow_Rs$maxRows_Rs);
                            
$resultados mysql_query($query_limit_Rs$conn) or die(mysql_error()."<br />".$sql);
                            
$filas mysql_fetch_assoc($resultados);
                            
                            if (isset(
$_GET['coincidencias'])) {
                              
$coincidencias $_GET['coincidencias'];
                            } else {
                              
$todos_los_Rs mysql_query($sql);
                              
$coincidencias mysql_num_rows($todos_los_Rs);
                            }
                    
//paginador
                
                
                
                
                
 
                
$columnes 4# Número de columnas (variable)
                 
            
                 
                
for ($i=1$row mysql_fetch_array ($resultados); $i++) 
                {
                    
$resto = ($i $columnes); # Número de celda del <tr> en que nos encontramos
                    
if ($resto == 1
                    {
                        echo 
"<div class='estantes'>";
                    } 
# Si es la primera celda, abrimos <tr>
                    
                    
                    
                    
                            
echo "<div class='libros'> 
                                    
                                  <a href='ampliar-productos.php?id="
.$row['id']."' rel='facebox'>
                                    
                                  <img src='../img/prod/mini/"
.$row['imagen']."' title='".$row['nombre']."'class='tool' />
                                  
                                  </a>
                                  </div>"

                    
                    if (
$resto == 0
                    {
                        echo 
"</div>";
                    } 
# Si es la última celda, cerramos </tr>
                
}
                
                
                
/* if ($resto <> 0) 
                { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos
                    $ajust = $columnes - $resto; # Número de huecos necesarios
                    for ($j = 0; $j < $ajust; $j++) 
                    {
                        echo "<div class='libros'>&nbsp;</div>";
                    }
                    
                }
                mysql_close($conn);*/
                
                
                
            
?>
PAGINADOR:
Código PHP:

<?php
            
//paginador
        
            
$totalPages_Rs ceil($coincidencias/$maxRows_Rs)-1;

            
$queryString_Rs "";
            
//if 1
            
if (!empty($_SERVER['QUERY_STRING'])) 
            {
            
                  
$params explode("&"$_SERVER['QUERY_STRING']);
                
                  
$newParams = array();
                
                  foreach (
$params as $param
                 {
                 
                 
                     
//if 2
                    
if (stristr($param"pageNum_Rs") == false && stristr($param"coincidencias") == false
                    {
                    
                          
array_push($newParams$param);
                    }
//if 2 close
                    
                   
}//foreach close
                
                
                  //if 3
                   
if (count($newParams) != 0
                 {
                    
$queryString_Rs "&" htmlentities(implode("&"$newParams));
                   }
//if 3 close
                 
            
}//if 1 close
            
                
$queryString_Rs sprintf("&coincidencias=%d%s"$coincidencias$queryString_Rs);
                
                
//paginador
      
?>
        
                    <div id="pager">
                            
                        
                        
                                <?php 
                                
//boton Anterior
                                // mostrar si no es la primera pagina
                                  
if ($pageNum_Rs 0) {
                                
?>
                                <a href="<?php printf('%s?pageNum_Rs=%d%s'$currentPagemax(0$pageNum_Rs 1), $queryString_Rs); ?>"></a>
                                <a href="<?php printf('%s?pageNum_Rs=%d%s'$currentPagemax(0$pageNum_Rs 1), $queryString_Rs); ?>">
                                <img src="../img/btn-ant.gif" />
                                </a>
                                <?php ?>
                                
                                
                                <?php 
                                
//numeraciones   
                                    
$last=$totalPages_Rs+1;
                                    
$current=$pageNum_Rs+1;
                                    
                                        
                                    
//for
                                    
for ($i=1$i<=$last$i++) 
                                    {
                                        
                                        
//if 4
                                        
if($current==$i)
                                        {
                                            echo 
"<a href='#' style='color:#F90; text-decoration:none; font-weight:bold; font-size:18px;'>".$i."</a>";
                                        }else{
                                
?>
                                                    
                                    <a href="<?php printf("%s?pageNum_Rs=%d%s"$currentPagemin($totalPages_Rs$i-1), $queryString_Rs?>">
                                         <?php echo $i?>          </a>
                                    <?php       
                                        
}// if 4 close
                                    
}//for close
                                    
?>
                                    <?php 
                                    
// Mostrar si no es la ultima pagina
                                    
if ($pageNum_Rs $totalPages_Rs) {  ?>
                                     
                                        <a href="<?php printf('%s?pageNum_Rs=%d%s'$currentPagemin($totalPages_Rs$pageNum_Rs 1), $queryString_Rs); ?>">
                                        
                                        <img src="../img/btn-desp.gif" />                            </a> 
                                       
                                    <?php ?>
                    </div><!--paginador-->
si me pudieran dar una mano para hallar el error o modificarlo de tal manera que me muestre los 32 registros... y no 31... ya probé de todo lo que se me ocurrió.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...