Foros del Web » Programando para Internet » PHP »

Paginación de contenidos en sistema de artículos

Estas en el tema de Paginación de contenidos en sistema de artículos en el foro de PHP en Foros del Web. Hola a todos/as. Es mi primer post en estos magnificos foros, y tengo una duda que nadie sabe responderme. Tengo un sistema de artículos, y ...
  #1 (permalink)  
Antiguo 29/03/2005, 02:36
Avatar de Nemo1  
Fecha de Ingreso: marzo-2005
Ubicación: Jerez de la Ftra. (Cádiz)
Mensajes: 13
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Paginación de contenidos en sistema de artículos

Hola a todos/as.
Es mi primer post en estos magnificos foros, y tengo una duda que nadie sabe responderme.
Tengo un sistema de artículos, y lo que quisiera es paginar el contenido del mismo, para que los artículos muy extensos se puedan dividir.
Los archivos que utilizo son los siguientes.
articulos.php
Código:
<?
// nos conectamos con la base de datos.
$conexion = mysql_connect('localhost', 'usuario', 'contraseña');
mysql_select_db('nombre_bd',$conexion);
//-----------------------------------------------------------

if (isset($_GET[cat])) {
$query = "SELECT * FROM articulos WHERE cat = ".$cat." ORDER BY id DESC";
} else {
$query = "SELECT * FROM articulos ORDER BY id DESC";
}

$sql = mysql_query($query);
$total = mysql_num_rows($sql);
?>

<?
if ($total == 0) { echo "<center><b>NO se han encontrado Articulos</b></center>"; }
else { echo "<center><b>Se han encontrado un total de: ".$total." Articulos</b></center>";
?>
<br><br>
<table width=100% cellpadding=4 cellspacing=0 border=0>
<?
while ($row = mysql_fetch_array($sql)) {
?>
  <tr>
    <td>
<table width="100%"  border="0" cellspacing="0" cellpadding="0" bgcolor="d9d9d9">
  <tr>
    <td colspan="2"><strong>Titulo:</strong> <a href="mostrar.php?id=<?=$row[id]?>"><?=stripslashes($row[titulo])?></a></td>
  </tr>
  <tr>
    <td width="50%"><div align="center"><strong>Autor:</strong> <?=$row[autor]?></div></td>
    <td width="50%"><div align="center"><strong>Categoria:</strong> <?=$row[cat]?></div></td>
  </tr>
</table>
    </td>
  <tr>
<? } ?>
</table>
<? } ?>
<? mysql_close($conexion); ?>
mostrar.php

Código:
<?
// nos conectamos con la base de datos.
$conexion = mysql_connect('localhost', 'usuario', 'contraseña');
mysql_select_db('nombre_bd',$conexion);
//-----------------------------------------------------------

$sql = mysql_query("SELECT * FROM articulos WHERE id = '$id'");
$row = mysql_fetch_array($sql);
mysql_close($conexion);
?>
<html>
<head><title>Articulo: <?=$row[titulo]?></title></head>
<body>
<div align="center"><b><?=$row[titulo]?></b></div>
  <p>Autor: <i><?=$row[autor]?>.</i>
  <br>
  Categoria: <i><?=$row[cat]?>.</i></p>
  <p aling="justify"><?=stripslashes($row[articulo])?></p>
</body>
</html>
Pido disculpa por la extensión del post, y me gustaría que alguien me echara una mano por favor.
Un saludo y gracias por las posibles respuestas.
  #2 (permalink)  
Antiguo 29/03/2005, 07:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Para paginar el contendido de tu artículo .. tendrás que tomar algunas determinaciones sobre como o bajo que critério hacerlo.

Por ejemplo .. puedes colocar un psudo-código en tu artículo tipo:
[salto_pagina]

cuando quieras ocasinar un salto de página .. También podrías hacerlo considerando X caracteres por página (y que se corte tal vez en mitad de un párrafo que no corresponde .., auque esto se podría depurar ..).

Lo más sano es usar el tag .. así tu decides (el redactor del artículo) donde queda mejor cambiar de página (tal vez para estructurar mejor capítulos/secciones de ese artículo).

Si usas el "tag" .. tan sólo debes "partir" tu $row[articulo] (supongo que eso es el contenido) usando:
$paginas=explode('[salto_pagina'],$row[articulo]);

eso te dará un array .. cada indice del array será tu página. A partir de ahí generas los llinks para "siguiente - anterior" (o páginas) tomando como valor ese indice del array .. validando con count() si estás fuera del total de elementos de ese array .. etc ..

Un saludo,
  #3 (permalink)  
Antiguo 29/03/2005, 08:25
Avatar de Nemo1  
Fecha de Ingreso: marzo-2005
Ubicación: Jerez de la Ftra. (Cádiz)
Mensajes: 13
Antigüedad: 12 años, 8 meses
Puntos: 0
Exclamación

Gracias Cluster por tu respuesta.

Pero existe un problema, que estoy muy verde en php y me cuesta entender lo que me dices y no sé por donde meterle máno al código para realizar lo que me comentas.
Sé que es pedir mucho, pero... ¿podrías decirme donde modificar exactamente el código tal y como se muestra en mi primer post?
Te estaría muy agradecido.
Un saludo.
  #4 (permalink)  
Antiguo 29/03/2005, 08:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No es tan simple la modificación .. hay un tema que hay que controlar "la paginación" .. es decir, generar esos links .. la lógica que ello conlleva .. etc.

La idea te la planteé .. intenta desarrollarla y aquí vamos viendo como hacerlo. O a ver si alguien se anima o conoce de algún tutorial al respecto para que lo veas en la práctica ..

Un saludo,
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 13:22.