Foros del Web » Programando para Internet » PHP »

¿Mejor manera de paginar textos?

Estas en el tema de ¿Mejor manera de paginar textos? en el foro de PHP en Foros del Web. Hola a tod@s, tengo una serie de dudas sobre la paginación de textos en espacios web, especialmente en los analisis o avances de videojuegos, que ...
  #1 (permalink)  
Antiguo 16/01/2010, 06:08
 
Fecha de Ingreso: diciembre-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
¿Mejor manera de paginar textos?

Hola a tod@s, tengo una serie de dudas sobre la paginación de textos en espacios web, especialmente en los analisis o avances de videojuegos, que además intercalan imágenes.

Quiero hacer lo mismo y no veo por donde puedo ir. Si alguien me puede ayudar estaré agradecido ;)

Saludos!
  #2 (permalink)  
Antiguo 16/01/2010, 07:39
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿Mejor manera de paginar textos?

Paginación de textos... cómo tienes ordenados esos textos?

Si cada texto a paginar es un registro de la bd diferente, no tienes más que ir recorriendo poniendo un LIMIT desde la posición X (número de página * número de mensajes mostrados) hasta la posición Y ((número de págin * número de mensajes mostrados) + número de mensajes mostrados).

Si el texto es todo un registro, vas a tener que ir contando palabras y paginando en base a eso. Te recomiendo la primera opción.

Saludos
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 16/01/2010, 07:46
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: ¿Mejor manera de paginar textos?

Si tienes el articulo completo en cada registro de la base de datos, podrias dividirlo tu con cierto patron, y luego usar explode() y quedarte con la parte que quieras, no se si me explico.....


texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
[pag]

texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
[pag]

texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto




Si este fuese nuestro articulo por ejemplo en $articulo, hacemos $seccion=explode("[pag]",$articulo); y tendriamos $seccion[0] , $seccion[1] y $seccion[2]
  #4 (permalink)  
Antiguo 16/01/2010, 07:50
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿Mejor manera de paginar textos?

Cita:
Iniciado por Vun Ver Mensaje
Si tienes el articulo completo en cada registro de la base de datos, podrias dividirlo tu con cierto patron, y luego usar explode() y quedarte con la parte que quieras, no se si me explico.....


texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
[pag]

texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto
[pag]

texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto




Si este fuese nuestro articulo por ejemplo en $articulo, hacemos $seccion=explode("[pag]",$articulo); y tendriamos $seccion[0] , $seccion[1] y $seccion[2]
Sería mejor poner una marca en [pag] que dijera el número de página que es, para localizarla mejor en la paginación ( [pag==1] con expresiones regulares se podría agarrar todo lo que haya entre [pag== y ]
. Esa es la página a agarrar.
Pero insisto en que lo más sencillo es dividir los textos en registros.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #5 (permalink)  
Antiguo 16/01/2010, 08:05
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 15 años, 3 meses
Puntos: 150
Respuesta: ¿Mejor manera de paginar textos?

Yo de expresiones regulares ni papa...... las veo y me quedo mirando parriba como un perro chico xD, pero si, mucho mas efectivo seguro
  #6 (permalink)  
Antiguo 16/01/2010, 08:32
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿Mejor manera de paginar textos?

La única solución que le veo al explode con [pag] sería paginando con javascript:

Código HTML:
Ver original
  1. <body onload="javascript:mostrarTexto(0);">
  2. <div id="capaTexto"></div>
  3. </body>

Código Javascript:
Ver original
  1. function mostrarTexto(pagina) {
  2.  
  3. // La variable texto tendrá el contenido del texto que se le
  4. // asigne por php. Addslashes es para escapar las comillas
  5. // y no arruine el script.
  6. var texto="<?echo addslashes($todoElTexto);?>";
  7.  
  8. texto=texto.explode("[pag]"); // nos devolverá el array con todas las páginas;
  9.  
  10. // el <div id="capaTexto"> del html, lo rellenamos con
  11. // el trozo de texto que le indiquemos.
  12. document.getElementById("capaTexto").innerHTML=texto[pagina];
  13.  
  14. }

Hasta puedes hacer la paginación con javascript:

Código Javascript:
Ver original
  1. function muestrapaginas() {
  2.  
  3. var texto="<?echo addslashes($texto);?>";
  4.  
  5. texto=texto.explode("[pag]");
  6. paginas="";
  7.  
  8. // recorremos todos los trozos de texto
  9. // para saber cuántas páginas hay que imprimir.
  10. for(i=0; i<texto.lenght ; i++) {
  11.  
  12. // Para que la primera página no aparezca
  13. // como cero (si son tres páginas, 1-3 en lugar de 0-2)
  14.     k=i+1;
  15.     paginas+="<a href='javascript:mostrarTexto("+k+");'>"+k+"</a>";
  16.  
  17. }
  18.  
  19. return paginas;
  20. }

El código lo acabo de hacer mientras escribía esto, pero no lo he probado. Creo que tal cual está si le pasas bien $texto en php funcionará.

Saludos.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #7 (permalink)  
Antiguo 16/01/2010, 08:34
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿Mejor manera de paginar textos?

El usuario no va a responder nunca? Estamos aquí a absorbernos los sesos.·........
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #8 (permalink)  
Antiguo 16/01/2010, 13:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: ¿Mejor manera de paginar textos?

Ahora tengo los textos guardados en la base datos dividos por parrafos para poder incluir imagenes entre medio.

Por lo que veo una de las maneras más comunes de paginar textos es poner una referencia y cuando encuentre tal, cortar por alli y listo.

Tendré que probar esa técnica para ver como funciona.

Otra duda que tengo es si ¿es mejor subir un archivo .txt y guardar su enlance al registro base datos o guardar directamente el texto completo a la base datos?
Mi creencia es que si subo un .txt tendré problemas en darle formato (negrita, cursiva...) mientras que si lo guardo directo en la base datos no hay problema. ¿Estoy en lo cierto?

Gracias por vuestras respuestas ;)
  #9 (permalink)  
Antiguo 16/01/2010, 13:50
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿Mejor manera de paginar textos?

Nunca te compliques la vida tanto. Hazlo en la base de datos directamente. Si lo guardas en ficheros, tendrás que andar leyéndolos y es muy engorroso.
Utiliza el código que te puse arriba, que es bueno.
Saludos.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #10 (permalink)  
Antiguo 16/01/2010, 14:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: ¿Mejor manera de paginar textos?

Ok. Lo probare pero lo miraré de hacer en PHP el paginador, ya que si no dispones de javascript...

Lo principal era saber como hacerlo y por lo visto con una etiqueta es lo más apropiado.

¡Gracias!
  #11 (permalink)  
Antiguo 17/01/2010, 05:11
 
Fecha de Ingreso: diciembre-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: ¿Mejor manera de paginar textos?

Bien chicos he probado lo de poner una etiquta tipo [PAG] y dividir pero...fallo!

Tengo un problema básicamente en como guardo el texto en la base de datos, os comento lo guardo de tal manera que queda dividido en campos:

titulo general / parrafo1/ parrafo2/ titulo 2 / parrafo3 / parrafo4

(respresenta los campos como lo guardo en la bd de un solo articulo)

La idea de guardar el texto total en parrafos era para poder intercalar las imágenes... pero claro ahora no puedo coger una variable con el texto entero y decir que busque los [PAG]

Lo mejor quizás sea modificar la estructura del texto en la base datos ¿no? Tenéis alguna idea de como podría hacerlo .

PD: Perdón por el doble post.
  #12 (permalink)  
Antiguo 17/01/2010, 07:40
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿Mejor manera de paginar textos?

Explícate un poco mejor.
Quieres decir que algunos párrafos son imágenes? Con el mismo código nodeberías tener problemas
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #13 (permalink)  
Antiguo 17/01/2010, 07:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: ¿Mejor manera de paginar textos?

Cita:
Iniciado por CHuLoSoY Ver Mensaje
Explícate un poco mejor.
Quieres decir que algunos párrafos son imágenes? Con el mismo código nodeberías tener problemas
Lo que quiero decir que es el articulo completo no lo tengo guardado en la base de datos en un unico campo texto sino en varios campos llamados parrafo1 parrafo2 parrafo3, entonces este sistema de etiqueta tipp [pag] no sirve.
  #14 (permalink)  
Antiguo 17/01/2010, 08:09
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 9 meses
Puntos: 29
Respuesta: ¿Mejor manera de paginar textos?

Empezáramos por ahí. Más arriba te di una solución sobre si la tenías en la base de datos, creo.
Lo que puedes hacer es lo siguiente:

leer.php?id=x
Código PHP:
Ver original
  1. //datos de conexion
  2. $sql="SELECT * FROM textos WHERE id=".$_GET['id'];
  3. $result=mysql_query($sql,$conexion) or die(mysql_error());
  4. $fila=mysql_fetch_array($result);
  5.  
  6. // Si no recibimos página por GET, la página inicial será 1.
  7.     if($_GET['pagina']) { $pagina=$_GET['pagina']; }
  8.     else { $pagina=1; }
  9.  
  10.           $texto=$fila['parrafo'.$pagina];
  11. mysql_close($conexion);

Para paginar lo puedes hacer a mano, ya que sabes que como máximo va a haber 4 párrafos no?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: paginar, textos, mejoras
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:32.