Foros del Web » Programando para Internet » PHP »

No entiendo paginación!!!

Estas en el tema de No entiendo paginación!!! en el foro de PHP en Foros del Web. Hola amigos: Tengo tiempo dando vueltas con lo de la paginación y he leido ochocientas formas de hacerla pero no entiendo como intengrarla con mi ...
  #1 (permalink)  
Antiguo 04/08/2009, 08:44
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
No entiendo paginación!!!

Hola amigos:

Tengo tiempo dando vueltas con lo de la paginación y he leido ochocientas formas de hacerla pero no entiendo como intengrarla con mi código. El caso es que tengo una página donde llamo una función que me muestra los productos disponibles en una categoría.

mostrar.php

Código PHP:
<?
   mostrar_productos
($productos_array);
  
?>
y esta es la funcion:

Código PHP:
function mostrar_productos($productos_array)
{
  if (!
is_array($productos_array))
  {
     echo 
"<br>No hay productos disponibles en esta categoría<br>";
  }
  else
  {
     echo 
"<table id=\"comprar\" width = \"100%\" border=0 cellpadding=10 cellspacing=5 bordercolorlight=#FF9933>";
    
//create a table row for each product
    
foreach ($productos_array as $row)
    {
      
$url "mostrar_productos.php?sku=".($row["sku"]);
      echo 
"<tr><td>";
    if(@
file_exists("fotos/".$row["sku"].".jpg"))
    {
    
$title"<img src=\"fotos/".($row["sku"]).".jpg\" border=0>";
    
do_html_url($url$title);
    }
      else
      {
        echo 
"&nbsp;";
      }
      echo 
"</td><td>";
      
$nombre_prod =  $row["nombre_prod"];
      
do_html_url($url$nombre_prod);
      echo 
"</td><td>";
      
$price =  $row["price"];
      echo 
"<b>Bs.  </b>";
      echo 
$price
      echo 
"</td></tr>";
    }
    echo 
"</table>";
}

Ahora lo que yo quisiera es tener la función de paginación y no se si debo llamarla dentro de la función cuando se van a mostrar los productos o en mostrar.php. Si se llama dentro de la función en que parte se coloca y cómo?

Por favor ayudenme que no se coordinar esto.

Gracias
  #2 (permalink)  
Antiguo 04/08/2009, 09:17
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: No entiendo paginación!!!

La paginación debe ir integrada al codigo donde usted consule a la base de datos y obtenga un recorset con todos los productos de cierta categoria.

Saludos!
  #3 (permalink)  
Antiguo 04/08/2009, 10:19
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: No entiendo paginación!!!

Gracias, sigo sin entender. Aqui es donde hago la consulta:

Código PHP:
function get_productos($catid)
{
   
// petición a la base de datos de los productos de una categoría
   
if (!$catid || $catid==""
     return 
false;
   
$conexion db_connect();
   
$query "select * from productos where catid='$catid' AND ctdad > 0";
   
$result = @mysql_query($query);
   if (!
$result
     return 
false;
   
$num_productos = @mysql_num_rows($result);
   if (
$num_productos ==0
      return 
false;
   
$result db_result_to_array($result);
   return 
$result;

Esto lo guardo en un array:

Código PHP:
$productos_array get_productos($catid);
  
mostrar_productos($productos_array); 
Y esta es la paginación:

Código PHP:
// Registros a mostrar en cada página
$regVistos 10;

// Consulta que devuelve todos los registros
$lista0 mysql_query("SELECT * FROM productos");

// Se cuentan los registros devueltos por la consulta SQL $lista0
$totalSql mysql_num_rows($lista0);

// Páginas que van a aparecer, redondeando los decimales siempre hacia arriba
$pagTotal ceil($totalSql/$regVistos);

// Se definen la página actual (desde el parámetro 'pag' de la URL) y las páginas anterior y siguiente
if (!isset($_GET['pag'])) {$pagActual=1;} else {$pagActual=$_GET['pag'];}
$pagAnterior $pagActual-1;
$pagSiguiente $pagActual+1;

// Consulta SQL con la que se sacará el listado de registros
$lista1 mysql_query("SELECT * FROM productos ORDER BY campo DESC LIMIT ".(($pagActual-1)*$regVistos).",".$regVistos."");

// Bucle para generar el listado de registros
while($fila mysql_fetch_assoc($lista1)) {
 
// Aquí irá el código PHP que escriba los registros
      
$nombre_prod =  $fila["nombre_prod"];
      
$price =  $fila["price"];

Pero no sirve, me da error. Qué hago, please
  #4 (permalink)  
Antiguo 04/08/2009, 10:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No entiendo paginación!!!

Cita:
Iniciado por kimmy Ver Mensaje
[...] Pero no sirve, me da error. Qué hago, please
error, cual error??

no somos adivinos

¿puedes colocar el error exacto que te muestra?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/08/2009, 10:32
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: No entiendo paginación!!!

disculpen, el código de paginación lo monté aparte para probar si me traia los resultados y me da este error:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in...

quiero probarlo a ver si funciona y después integrarlo en la función que me muestra los productos por categorías.

Gracias
  #6 (permalink)  
Antiguo 04/08/2009, 10:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No entiendo paginación!!!

lo que te sucede es un error que no puedes ver....

debes depurar siempre tus consultas...

Código PHP:
mysql_query(/* tu consulta */) or die(mysql_error()); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 04/08/2009, 10:46
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: No entiendo paginación!!!

Me da este error:

Unknown column 'campo' in 'order clause'. Ya cambie campo que tonta. Le puse así:

$lista1 = mysql_query("SELECT * FROM productos ORDER BY nombre_prod DESC LIMIT ".(($pagActual-1)*$regVistos).",".$regVistos."");

Pero igual no me muestra nada!!!
  #8 (permalink)  
Antiguo 04/08/2009, 10:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: No entiendo paginación!!!

No existe la columna campo en la tabla productos. Verifica que hayas escrito correctamente el nombre de la columna
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 04/08/2009, 11:00
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: No entiendo paginación!!!

le coloqué unos echo, pero tampoco muestra nada:

Código PHP:
$lista1 mysql_query("SELECT * FROM productos ORDER BY sku DESC LIMIT ".(($pagActual-1)*$regVistos).",".$regVistos."");
// Bucle para generar el listado de registros
while($fila mysql_fetch_assoc($lista1) or die(mysql_error())) {
 
// Aquí irá el código PHP que escriba los registros
      
echo "<td>";
      
$nombre_prod =  $fila["nombre_prod"];
      echo
      
"</td>";
      echo 
"
      <td>"
;
      
$price =  $fila["price"];
      echo
      
"</td>";

que estoy haciendo mal?
  #10 (permalink)  
Antiguo 04/08/2009, 11:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No entiendo paginación!!!

Cita:
Iniciado por kimmy Ver Mensaje
[...] que estoy haciendo mal?
claramente te mencione que debes depurar tu consulta (query) y NO lo demás....

Cita:
Iniciado por pateketrueke Ver Mensaje
[...]
Código PHP:
mysql_query(/* tu consulta */) or die(mysql_error()); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 04/08/2009, 11:28
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: No entiendo paginación!!!

pateketrueke ya lo puse como tu indicas pero no dice nada. Lo puse así:

while($fila = mysql_fetch_assoc($lista1) or die(mysql_error())) {
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 19:26.