Foros del Web » Programando para Internet » PHP »

Paginacion de noticias en PHP

Estas en el tema de Paginacion de noticias en PHP en el foro de PHP en Foros del Web. Saludos a todo el mundo, Necesito un empujón, a ver si alguien puede ayudarme... Estoy realizando una aplicación de noticias y estoy en el punto ...
  #1 (permalink)  
Antiguo 02/11/2004, 07:13
 
Fecha de Ingreso: noviembre-2003
Mensajes: 76
Antigüedad: 20 años, 3 meses
Puntos: 0
Paginacion de noticias en PHP

Saludos a todo el mundo,
Necesito un empujón, a ver si alguien puede ayudarme...
Estoy realizando una aplicación de noticias y estoy en el punto en que necesito realizar una paginacion de las noticias (bien sea por temas o por resultados de las busquedas tienen que ir paginadas) Es decir, si pulsas al enlace de "sociedad" y hay 70 noticias de ese tema pues está claro que haré un select para ver cuantas noticias hay de ese tema y lo asignaré a una variable y ese numero lo dividiré por el numero de resultados que quiero en una pagina y si el resultado por ejemplo son 9 paginas pues quiero que aparezcan los siguientes enlaces: << 1, 2, 3, 4, 5, 6, 7, 8, 9 >> y aqui viene el problema: las noticias tienen un "id_noticia" numerico, pero si alguien ha borrado una noticia habrá un salto numérico el cual imposibilita que haga una select para obtener los resultados de la pagina 6 por ejemplo (suponiendo que alguien pulsa la pagina "6") (para aclarar la cosa: si el autor de la noticia 3 la borra... en la pagina 1 que deberían aparecer 6 noticias por ejemplo... pues deberían aparecer las noticias con id_noticia: 1, 2, 4, 5, 6, 7... Como se hace esto??? Alguien lo sabe? Podeis ayudarme?
Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 02/11/2004, 08:50
 
Fecha de Ingreso: junio-2004
Mensajes: 84
Antigüedad: 19 años, 8 meses
Puntos: 0
No entiendo muy bien cual es tu problema, pero si lo que quieres es hacer un paginador, aca te tiro un ejemplo de como podrias hacer uno.
Código PHP:
<?
$query 
"SELECT COUNT(1) FROM tabla";
$result mysql_query($query);
//Obtenemos todos los registros de la tabla
$total mysql_num_rows($result);
//Registro en el cual nos paramos.(Si no esta definido, nos paramos en el 0)
$offset $_GET["offset"] ? $_GET["offset"] : 0;
//Cantidad de resultados mostrado por pagina
$maximo 15;
$query "SELECT * FROM tabla LIMIT $offset,$maximo";
//Obtenemos los datos que vamos a mostrar en la pagina
$result mysql_query($query);
//Hacemos todo lo necesario

//Armamos el Paginador.

if ($offset != "0")
     
//Link para pagina Anterior
$vuelta 1;
$paginas round($total /$maximo)
while (
$vuelta <= $paginas)
{
    
//Link de la pagina pagina.php?offset=$vuelta*maximo , mostrando el valor  de $vuelta
    
$vuelta++;
}
if  ( (
$offset $maximo) < $total)
    
//Link para pagina siguiente
?>
Bueno, esperemos que esto te sirva
Un abrazo.
__________________
Repositorio de funciones utiles para programadores y administradores
http://www.particle.com.ar

Última edición por eqsoftware; 02/11/2004 a las 08:52
  #3 (permalink)  
Antiguo 02/11/2004, 09:15
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 8 meses
Puntos: 0
ok

Prueba el paginator 1.4 de jpinedo

http://jpinedo.webcindario.com/
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #4 (permalink)  
Antiguo 02/11/2004, 14:09
 
Fecha de Ingreso: noviembre-2003
Mensajes: 76
Antigüedad: 20 años, 3 meses
Puntos: 0
Muchisimas gracias a ambos, me habeis ayudado.
  #5 (permalink)  
Antiguo 02/11/2004, 14:12
 
Fecha de Ingreso: junio-2004
Mensajes: 84
Antigüedad: 19 años, 8 meses
Puntos: 0
De nada, para eso estamos ^^
__________________
Repositorio de funciones utiles para programadores y administradores
http://www.particle.com.ar
  #6 (permalink)  
Antiguo 05/12/2004, 22:20
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 92
Antigüedad: 19 años, 4 meses
Puntos: 0
Cita:
Iniciado por andinistas
Prueba el paginator 1.4 de jpinedo

http://jpinedo.webcindario.com/
Hola, saludos
Instale el paginator 1.5
Pero me da el siguiente error
Error en la consulta de conteo de registros: Resource id #2. Mysql dijo: You have an error in your SQL syntax near 'Resource id #2' at line 1

Este es mi codigo
Código PHP:
<?php
$con 
mysql_connect("xxx","xxx","") or die (mysql_error());
mysql_select_db("xxx",$con) or die (mysql_error());

$_pagi_sql "SELECT * FROM stories WHERE catid='0' ORDER BY sid ";
$_pagi_cuantos 20;
include(
'paginator_archivo_noticias.php');
  while (
$row2 mysql_fetch_array($_pagi_result)){ 
    
$sid = ($row2['sid']);
    
$title $row2['title'];
    
$informant $row2['informant'];
    
$text $row2['hometext'];
    
$text2 $row2['bodytext'];
    
$notero $row2['informant'];
    
$categoria $row2['catid'];
    
$ratings $row2['time'];
echo
"<table width=\"100%\"  border=\"0\" cellspacing=\"4\" cellpadding=\"0\">"
  
"  <tr>";  
  echo 
"    <td width=\"86%\" align=\"left\" valign=\"top\"><a href=\"?mod=Articulo&amp;id_noticia=$sid\" class=\"mod_news_titulo_sin_fotos\" >$title</a><br><font class=\"mod_news_text_fotos\">$text<br> &nbsp;</font> <font class=\"mod_news_creditos_fotos\">(Por $informant, Publicado el $ratings) </font>&nbsp;<a href=\"?mod=Articulo&amp;id_noticia=$sid\" class=\"mod_news_flechas_sin_fotos\" >>></a> "
  
"  </tr>"
  
"  <tr>"
  
"    <td colspan=\"2\"><hr></td>"
  
"  </tr>"
  
"</table>"
 
."";
  }
 echo
"<p>".$_pagi_navegacion."</p>";
  
?>
Nose si alguien me pude decir que pasa que no me funciona y me arroja ese error
Saludos
__________________
Necesito Colaboradores :arriba:
Siempre aprendiendo algo :pensando:
www.gamebox.cl
  #7 (permalink)  
Antiguo 05/12/2004, 22:44
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 5 meses
Puntos: 41
Hola:
No veo por qué hay error en el conteo de registros...
De todos modos puedes definir la variable
Código PHP:
$_pagi_conteo_alternativo true
Como puedes ver en el ejemplo en la web:
http://jpinedo.webcindario.com/scrip..._avanzado.html

Saludos

PD: Yo que tú no le cambiaba el nombre así al archivo... porque la idea es que te sirva no sólo para las noticias....
  #8 (permalink)  
Antiguo 06/12/2004, 06:46
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago, Chile
Mensajes: 92
Antigüedad: 19 años, 4 meses
Puntos: 0
Cita:
Iniciado por jpinedo
Hola:
No veo por qué hay error en el conteo de registros...
De todos modos puedes definir la variable
Código PHP:
$_pagi_conteo_alternativo true
Como puedes ver en el ejemplo en la web:
http://jpinedo.webcindario.com/scrip..._avanzado.html

Saludos

PD: Yo que tú no le cambiaba el nombre así al archivo... porque la idea es que te sirva no sólo para las noticias....
Hola
En realidad no habia nada malo con el codigo. Le cambie el nombre a tu script, al original y funciono de inmediato, que raro no?.
Una última pregunta, como cambio la apariencia de la barra de navegación del paginator?, esto para que quede más acorde al diseño de mi pagina.
Sludos
__________________
Necesito Colaboradores :arriba:
Siempre aprendiendo algo :pensando:
www.gamebox.cl
  #9 (permalink)  
Antiguo 06/12/2004, 20:12
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 5 meses
Puntos: 41
Cita:
Iniciado por granunca
Una última pregunta, como cambio la apariencia de la barra de navegación del paginator?, esto para que quede más acorde al diseño de mi pagina.
Ésa es una funcionalidad bastante pedida... pero lamentablemente por ahora Paginator no la tiene. Pero no es muy difícil agregarla. Simplemente en el código del script cambias todas las "<a " por <a class='$_pagi_estilo' " (en un editor es fácil utilizando "find and replace")... luego, claro, tienes que definir una variable $_pagi_estilo antes de incluir el Paginator.

Saludos y gracias por utilizar el script
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 05:09.