Foros del Web » Programando para Internet » PHP »

Mostrar contenido en Varias Paginas Con Indice

Estas en el tema de Mostrar contenido en Varias Paginas Con Indice en el foro de PHP en Foros del Web. Hola a todos, ultimamente he estado planteando muchas dudas, es que me he topado con requerimientos bastante interesantes, utiles en algunos casos y practicos. Quisiera ...
  #1 (permalink)  
Antiguo 04/04/2007, 12:37
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Mostrar contenido en Varias Paginas Con Indice

Hola a todos, ultimamente he estado planteando muchas dudas, es que me he topado con requerimientos bastante interesantes, utiles en algunos casos y practicos.

Quisiera saber como puedo mostrar determinado contenido de una BD en una pagina PHP, de tal forma que cuando este contenido sea excesivo, solo muestre un numero determinado y luego se tenga la opcion de mostrar el resto en otras paginas???

Me explico, por ejemplo tengo una lista de personas en la BD y al mostrarlas a todas mi pagina termina con la barra de desplazamiento hasta el suelo por que son mas de 1000, como puedo hacer que estas mil se muestren de 100 en 100 o cualquier cantidad cn la opcion de ver las 100 siguientes con un indice??
  #2 (permalink)  
Antiguo 05/04/2007, 08:41
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Mostrar contenido en Varias Paginas Con Indice

amigo aplique google o aqui mismo y busque por paginador hay varios dando vuelta hasta en ajax sin recargar la web completa ;)

le dejo un link
http://www.ribosomatic.com/articulos...ql-php-y-ajax/
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 05/04/2007, 09:20
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

Gracias KANINOX... creo que me acostumbre a ser especifico y consultar todas mi dudas aqui, con la experiencia de haber estado antes dando vueltas por ahi y encontrando cosas ambiguas, pues la ayuda y colaboracion de esta web no tiene comparacion.

Revise tu link y esta una belleza!!

Es exactamente lo que necesito.. GRacias por comentarlo.... Hasta pronto!

Última edición por makeitslow; 05/04/2007 a las 09:28
  #4 (permalink)  
Antiguo 07/04/2007, 08:13
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

Hola kaninox, utilizaste tu el paginador?? Pues es muy practico y eficiente, pero quice modificarlo para trabajar con 8 campos y con formato de tablas y me salio todo un desorden, es que no soy bueno en AJAX....
  #5 (permalink)  
Antiguo 14/04/2007, 12:43
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

Bueno, para los que quieran, pueden usar este otro codigo mas ligero y mas flexible al momento de modificarlo para ajustarlo a una necesidad especifica, por ejemplo la mia era tener la tabla con colores y contenido PHP y me quedo asi:

Para mostrar CARNETS SANITARIOS:
Código PHP:
<?php

function conectar() 

    
$base_de_datos "NOMBRE DE LA BASE DE DATOS";
    
$db_usuario "NOMBREUSUARIO"
    
$db_password "CONTRASEÑA"
   
    if (!(
$link mysql_connect("localhost"$db_usuario$db_password))) 
    { 
        echo 
"Error conectando a la base de datos."
        exit(); 
    } 
    if (!
mysql_select_db($base_de_datos$link)) 
    { 
        echo 
"Error seleccionando la base de datos."
        exit(); 
    } 
    return 
$link


$db conectar();


//Cuantos registros se muestran por pagina
$registros 10;

if (@!
$pagina=$_GET[pagina]) { 
    
$inicio 0
    
$pagina 1

else { 
    
$inicio = ($pagina 1) * $registros



?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Noticias</title>
<style>
    body { font-family: arial; font-size:12px}
</style>
</head>

<body>
    <?
    $resultados 
mysql_query("AQUI VIENE LA CONSULTA");
    
$total_registros mysql_num_rows($resultados); 
    
$resultados mysql_query("LA MISMA CONSULTA PERO CON ORDER BY ASC LIMIT $inicio, $registros");    
    
$total_paginas ceil($total_registros $registros);                       

    if(
$total_registros) {
?>
<div align="center">
  <p><font color="#CCCCCC"><font color="#003366" size="5" face="Berlin Sans FB">LISTA 
    DE CARNETS SANITARIOS</font></font></p>
  <table width="84%" border="1" cellspacing="0" bordercolor="#003366">
    <tr> 
      <td width="8%" bgcolor="#003366"> <div align="center"> 
          <p><font size="2" face="Berlin Sans FB"><font color="#FFFFFF">N&ordm; 
            de Carnet Sanitario</font></font></p>
        </div></td>
      <td width="4%" bgcolor="#003366"><div align="center"><font size="2" face="Berlin Sans FB"><font color="#FFFFFF" size="1">N&ordm; 
          de Fotografia</font></font></div></td>
      <td width="8%" bgcolor="#003366"><div align="center"><font size="2" face="Berlin Sans FB"><font color="#FFFFFF">N&ordm; 
          de Historia Clinica</font></font></div></td>
      <td width="21%" bgcolor="#003366"> <div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF">Apellidos</font></font></div></td>
      <td width="25%" bgcolor="#003366"> <div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF">Nombres</font></font></div></td>
      <td width="14%" bgcolor="#003366"> <div align="center"> 
          <p><font face="Berlin Sans FB"><font color="#FFFFFF" size="3">Fecha 
            de Registro</font></font></p>
        </div></td>
      <td width="9%" bgcolor="#003366"><div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF" size="2">Carnet 
          Sanitario </font></font></div></td>
      <td width="11%" bgcolor="#003366"><div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF" size="2">Fecha 
          de Caducidad</font></font></div></td>
    </tr>
<?php    
        
while($reg=mysql_fetch_array($resultados)) {
            
            
?>
            <tr> 
      <td> <div align="center"><font face="Berlin Sans FB"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["ID_CS"]; ?></font></font></font><font color="#003366"></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["NUMERO_FOTO"]; ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["ID_HC"]; ?></font></font></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="3"><? echo $reg["APELLIDOS_CS"]; ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="3"><? echo $reg["NOMBRES_CS"]; ?></font></font></font></div></td>
      <td> <div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo nl2br($reg["FECHA_REGISTRO"]); ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["CARNET_SANITARIO_CS"]; ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["FECHA_CADUCIDAD"]; ?></font></font></font></div></td>
    </tr>

  
            
<?php            
        
}
?>
</table><br></div>
<?php
        
    
} else {
        echo 
"<font color='darkgray'>(sin resultados)</font>";
    }
    
    
mysql_free_result($resultados);                
    
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='listarcarnets.php?pagina=".($pagina-1)."'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i
                echo 
"<b>".$pagina."</b> "
            else
                echo 
"<a href='listarcarnets.php?pagina=$i'>$i</a> "
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='listarcarnets.php?pagina=".($pagina+1)."'>Siguiente ></a>";
        }
        
        echo 
"</center>";
        
    }
    
?>
</body>
</html>
<? mysql_close($db);?>
<form name="form2" method="post" action="hola.php" target="principal">
  <div align="center">
  <input type="submit" name="atras" value="ACEPTAR">
  </div>
 </form>
  #6 (permalink)  
Antiguo 08/06/2007, 10:53
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

Hola de nuevo.. tengo otra pregunta... Como podria hacer lo mismo (Paginacion), pero no de consultas SQL o de resultados, si no del contenido de una pagina PHP.

Esta pagina tiene TEXT AREAS e INPUT TEXTS que muestran informacion, o bien tambien podria ser solo un TABLE....

Podria hacer lo mismo???

Gracias!!
  #7 (permalink)  
Antiguo 08/06/2007, 12:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Mostrar contenido en Varias Paginas Con Indice

Puedes usar tablas con varios tbodys e ir mostrando y ocultando los tbodys.

Saludos.
  #8 (permalink)  
Antiguo 09/06/2007, 07:27
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

T bodys?? Que es eso?? Podrias explicarme un poco mas por favor??

Gracias...
  #9 (permalink)  
Antiguo 11/06/2007, 21:46
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

Estuve revisando lo de los TBODYS (correctamente TBODIES).... JEJEJE
TBODY

Y no capto como hacer algo relacionado con lo que necesito... Mi pagina PHP tiene una TABLA con TEXTAREAS y TITULOS por ahi donde muestro informacion obtenida por consultas SQL... Como podria paginarla???
  #10 (permalink)  
Antiguo 12/06/2007, 21:39
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

Hola Blackmen10, antes de explicarte un poco mas del del codigo de mostrar Contenido Paginado, te dejo la parte del mio que funciona de pelos. El archivo se llama listarcarnets.php y lo comento un poco:

Código PHP:
<?
function conectar() 

    
//Funcion para conectarnos a nustra BD
        
$base_de_datos "usa";
    
$db_usuario "root"
    
$db_password ""
   
    if (!(
$link mysql_connect("localhost"$db_usuario$db_password))) 
    { 
        echo 
"Error conectando a la base de datos."
        exit(); 
    } 
    if (!
mysql_select_db($base_de_datos$link)) 
    { 
        echo 
"Error seleccionando la base de datos."
        exit(); 
    } 
    return 
$link


$db conectar();

//Variable para la cantidad de registros a mostrar por pagina
$registros 20;

if (@!
$pagina=$_GET[pagina]) { 
    
$inicio 0
    
$pagina 1

else { 
    
$inicio = ($pagina 1) * $registros



?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style>
    body { font-family: arial; font-size:12px}
</style>
</head>

<body>
    <?
        
//Seleccionamos todos los elementos de HISTORIA_CLINICA mediante el ID 
    
$resultados mysql_query("SELECT ID_CS FROM historia_clinica");
    
$total_registros mysql_num_rows($resultados); 
    
$resultados mysql_query("SELECT * FROM historia_clinica ORDER BY ID_CS ASC LIMIT $inicio, $registros");    
    
$total_paginas ceil($total_registros $registros);                       

    if(
$total_registros) {
?>
<div align="center">
  <p><font color="#CCCCCC"><font color="#003366" size="5" face="Berlin Sans FB">LISTA 
    DE CARNETS SANITARIOS</font></font></p>

//En esta tabla muestro el contenido de las consultas en su respectiva columna y fila
  <table width="85%" border="1" cellspacing="0" bordercolor="#003366">
    <tr> 
      <td width="6%" bgcolor="#003366"> <div align="center"> 
          <p><font size="2" face="Berlin Sans FB"><font color="#FFFFFF">N&ordm; 
            de Carnet Sanitario</font></font></p>
        </div></td>
      <td width="5%" bgcolor="#003366"><div align="center"><font size="2" face="Berlin Sans FB"><font color="#FFFFFF" size="1">N&ordm; 
          de Fotografia</font></font></div></td>
      <td width="7%" bgcolor="#003366"><div align="center"><font size="2" face="Berlin Sans FB"><font color="#FFFFFF">N&ordm; 
          de Historia Clinica</font></font></div></td>
      <td width="21%" bgcolor="#003366"> <div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF">Apellidos</font></font></div></td>
      <td width="21%" bgcolor="#003366"> <div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF">Nombres</font></font></div></td>
      <td width="10%" bgcolor="#003366"> <div align="center"> 
          <p><font face="Berlin Sans FB"><font color="#FFFFFF" size="3">Fecha 
            de Registro</font></font></p>
        </div></td>
      <td width="9%" bgcolor="#003366"><div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF" size="2">Carnet 
          Sanitario </font></font></div></td>
      <td width="11%" bgcolor="#003366"><div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF" size="2">Fecha 
          de Caducidad</font></font></div></td>
      <td width="10%" bgcolor="#003366"><div align="center"><font face="Berlin Sans FB"><font color="#FFFFFF" size="2">Imprimir 
          Documento </font></font></div></td>
    </tr>
    <?php    
        
while($reg=mysql_fetch_array($resultados)) {
            
            
?>
    <tr> 
      <td> <div align="center"><font face="Berlin Sans FB"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["ID_CS"]; ?></font></font></font><font color="#003366"></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["NUMERO_FOTO"]; ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["ID_HC"]; ?></font></font></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="3"><? echo $reg["APELLIDOS_CS"]; ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="3"><? echo $reg["NOMBRES_CS"]; ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo nl2br($reg["FECHA_REGISTRO"]); ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["CARNET_SANITARIO_CS"]; ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB"><font color="#003366"><font size="1"><? echo $reg["FECHA_CADUCIDAD"]; ?></font></font></font></div></td>
      <td><div align="center"><font face="Berlin Sans FB" size="2"><a href="#" onClick="javascript:window.open(
'imprimirDOC.php?cod=<?php echo $reg['ID_CS'];?>','','toolbars=0,titlebars=0,statusbars=0,menubars=0,resizable=0,directories=0,location=0,width=450,height=400');">IMPRIMIR</a></font></div></td>
    </tr>
    <?php            
        
}
?>
  </table>
  <br></div>
<?php
        
    
} else {
        
?><font face="Berlin Sans FB" color="#003366" size="3"><div align="center"><br><br><?php echo "No se encontro ningun Carnet Sanitario<br>";?></div></font><?php
    
}
    
    
mysql_free_result($resultados);                
    
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            
                
//Mostramos el enlace los siguientes N elementos de nuestro contenido
                
echo "<a href='listarcarnets.php?pagina=".($pagina-1)."'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i
                echo 
"<b>".$pagina."</b> "
            else
                echo 
"<a href='listarcarnets.php?pagina=$i'>$i</a> "
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='listarcarnets.php?pagina=".($pagina+1)."'>Siguiente ></a>";
        }
        
        echo 
"</center>";
        
    }
    
?>

Ahora bien, para definir la cantidad de elementos a mostrar, tenemos la variable:

$registros=NUMERO;

Debes considear que estos valores siempre sean 0 y 1 respectivamente:

$inicio = 0;
$pagina = 1;


En tu consulta que me comentas:

$resultados = mysql_query("select * from soin where id_orden ORDER BY ASC LIMIT $inicio, $registros");

Tienes demas la condicion WHERE, anteriormente ya deberias haber declarado un valor para $resultados considerando condiciones que tu necesites:

$resultados = mysql_query("SELECT id_orden FROM soin WHERE lo_que_quieras");

De tal forma que esa parte te quede asi:

Código PHP:
$resultados mysql_query("SELECT id_orden FROM soin");
    
$total_registros mysql_num_rows($resultados); 
    
$resultados mysql_query("SELECT * FROM soin ORDER BY id_orden ASC LIMIT $inicio, $registros");    
    
$total_paginas ceil($total_registros $registros); 
Y despues de esta parte, muestras los resultados como tu desees dentro del IF:

(En mi caso dentro de una tabla)
Código PHP:
if($total_registros) {
?>
<div align="center">
  <p><font color="#CCCCCC"><font color="#003366" size="5" face="Berlin Sans FB">LISTA 
    DE CARNETS SANITARIOS</font></font></p>
  <table width="85%" border="1" cellspacing="0" bordercolor="#003366">
.
.
.
.

Ahora si tienes el siguiente error:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\paginas.php on line 54

Considerando que en la linea 54 tienes:

$resultados = mysql_query("select * from soin where id_orden ORDER BY ASC id_orden $inicio, $registros");

Es que $resultados esta con valor nulo (0), tu consulta retorna un valor vacio y por eso myswl_num_rows() retorna ese error por que no puede tener dicho valor.

Por que tienes 0 en tu consulta??? Posiblemente por alguna de estas razones:

1. No tienes datos para esa consulta, o sea que no hay resultados para la consulta.

2. Estas utilizando la condicion WHERE que no es necesaria.

3. Estas los nombres de tus variables y campos con mayusculas en lugar de minusculas o visceversa (Revisa los nombres de los campos y escribelos tal cual estas en la BD)

Espero te sirva, cualquie duda vuelve a preguntar aqui mismo, tal vez alguien sepa algo mas concreto y correcto. Por lo pronto es todo.

Saludos!
  #11 (permalink)  
Antiguo 12/06/2007, 22:27
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Mostrar contenido en Varias Paginas Con Indice

chuata compadre sorry me desaparci un tiempin veamos :)
lo que te decia gatorv sobre los tbody bueno era ocupar tablas para que se entienda mejor y las vas armando a gusto....
respecto a blackmen creo que desaparecio...X) pero eso del error por que no hay registros no deberia ir? pues deberia aparecer que no hay registros pero bueno saludos...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #12 (permalink)  
Antiguo 13/06/2007, 08:04
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

No aparece que no hay registros, por que no esta manejando el valor 0, podria ser si se lo pone dentro de un condicional, mysql_fetch_array(), no maneja valores nulos.. si el valor es 0, entonces retorna ese mensaje.

Saludos Kaninox... No se como usar los tbodys... lo que queria era manipular el contenido de una pagina PHP para determinar donde comienza una pagina para mostrar una vista previa de impresion.

Gracias por la respuesta.
  #13 (permalink)  
Antiguo 15/06/2007, 12:18
Avatar de blackmen10  
Fecha de Ingreso: marzo-2007
Ubicación: chiapas
Mensajes: 18
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Mostrar contenido en Varias Paginas Con Indice

Estimado makeitslow te agradesco la ayuda gracias a los comentarios pude resolver el error k tenia graxxx....
suerte en lo que lo que hagas y en lo k pueda ayudare ya me conectare mas al foro pues me desapareci un rato pero ya estamos de vuelta y estaremos en contacto suerte.....
  #14 (permalink)  
Antiguo 16/06/2007, 10:42
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Mostrar contenido en Varias Paginas Con Indice

Cuando quieras, para eso estamos todos en el foro!

Saludos!
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 12:02.