Foros del Web » Programando para Internet » PHP »

Ayuda con paginator

Estas en el tema de Ayuda con paginator en el foro de PHP en Foros del Web. Hola tengo puesto en un script de noticias un paginador que me pasaron aqui, no recuerdo de quien es, me funcionaba bien hasta que rediseñe ...
  #1 (permalink)  
Antiguo 05/03/2005, 22:31
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 14 años, 1 mes
Puntos: 0
Busqueda Ayuda con paginator

Hola tengo puesto en un script de noticias un paginador que me pasaron aqui, no recuerdo de quien es, me funcionaba bien hasta que rediseñe mi pagina y cambie algo el script ahora no se porque no funciona ahora

aqui esta mi script de noticias

Código PHP:
<html>

<head>
<title>NOTICIAS</title>
<link rel="STYLESHEET" type="text/css" href="../pagina%20espindola/estilo.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body {
    background-color: #FFFFFF;
}
body,td,th {
    color: #666666;
}
.Estilo5 {    font-size: 14px;
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}
.Estilo6 {color: #666666}
-->
</style></head>

<body>
  <?
//conecto con la base de datos
include("configuracion.php");

if (!
$HTTP_POST_VARS)
{
if(!
$HTTP_GET_VARS )
{
//construyo la sentencia sql
          
$ssql "SELECT * FROM noticias_articulos WHERE categoria = 'anuncio' "
        
$ssql .= " ORDER BY id_noticia_articulo desc"
        
?><p align="center" class="Estilo5"><img src="imagenes/IMAGES/DOTS.GIF" width="10" height="10">Anuncio<img src="imagenes/IMAGES/DOTS.GIF" width="10" height="10"></p>
<?
}else{
$ca=$_GET["ca"];
?>
<p align="center" class="Estilo5"><img src="imagenes/IMAGES/DOTS.GIF" width="10" height="10"><?echo $ca;?><img src="imagenes/IMAGES/DOTS.GIF" width="10" height="10"></p>
 <?
          $ssql 
"SELECT * FROM noticias_articulos WHERE categoria = '$ca' "
        
$ssql .= " ORDER BY id_noticia_articulo desc"
}
        
$_pagi_sql $ssql;
        
$_pagi_cuantos 5
//tomo el juego de resultados 
        
$resultid mysql_query($ssql,$conn); 
//verifico cuantas filas hay en la tabla
$num=mysql_num_rows($resultid);
include(
"pagin_noticias.php");
    
?>
  
  <?
    
//muestro los datos en un bucle
    
while ($damefila=mysql_fetch_object($_pagi_result)) 
    {
 
//arreglo para el uso de smilies en el libro de visitas

          
$var $damefila->n_corta;
//corto las cadenas de texto para que no me las muestre a lo largo de la pagina
$var wordwrap$var,60"<br />"  );
          
str_replace ('(t)','<img src=smilies/60.gif>',$var);
//creamos el tratocode para dar formato a las firmas
//codigos para alineacion
$var str_replace ('{centrado}','<p align=center>',$var);
$var str_replace ('{/centrado}','</p>',$var);
$var str_replace('{izquierda}','<p align=left>',$var);
$var str_replace('{/izquierda}','</p>',$var);
$var str_replace('{derecha}','<p align=right>',$var);
$var str_replace('{/derecha}','</p>',$var);
$var str_replace('{justificado}','<p align=justify>',$var);
$var str_replace('{/justificado}','</p>',$var);
//codigos para tamaño de la fuente
$var str_replace ('{t=14}','<font size=4>',$var);
$var str_replace ('{t=18}','<font size=5>',$var);
$var str_replace ('{t=24}','<font size=6>',$var);
$var str_replace ('{t=36}','<font size=7>',$var);
$var str_replace ('{/t}','</font>',$var);
//codigos para color de la fuente
$var str_replace ('{fcolor=rojo}','<font color=red>',$var);
$var str_replace ('{fcolor=azul}','<font color=blue>',$var);
$var str_replace ('{fcolor=aqua}','<font color=aqua>',$var);
$var str_replace ('{fcolor=black}','<font color=black>',$var);
$var str_replace ('{fcolor=verde}','<font color=green>',$var);
$var str_replace ('{fcolor=red}','<font color=red>',$var);
$var str_replace ('{fcolor=amarillo}','<font color=yellow>',$var);
$var str_replace ('{fcolor=red}','<font color=red>',$var);
$var str_replace ('{fcolor=lima}','<font color=lime>',$var);
$var str_replace ('{fcolor=blanco}','<font color=white>',$var);
$var str_replace ('{/fcolor}','</font>',$var);
//codigos para negritas, italica y subrayado
$var str_replace ('{n}','<n>',$var);
$var str_replace ('{/n}','</n>',$var);
$var str_replace ('{i}','<i>',$var);
$var str_replace ('{/i}','</i>',$var);
$var str_replace ('{s}','<s>',$var);
$var str_replace ('{/s}','</s>',$var);
//listas 
$var str_replace('{li}','<li>',$var);
//fotos
$var str_replace('{foto}','<img src=',$var);
$var=str_replace('{/foto}','>',$var);
//links automaticos
$var=busca_url($var); 
        
?>
</p>
<hr>
<b><i>Autor: </i></b>
<?     //si el visitante no introdujo nombre muestro como nombre "Anónimo"
            
if ($damefila->autor == "-"){
                echo 
"Anónimo";
}else{
                
$autor=emoticon_tratocode($damefila->autor);
                echo 
$autor;
            }
?>

<p align="justify"><b><i>
<?
$titulo
=busca_url(emoticon_tratocode($damefila->titulo));
 echo  
$titulo;
   
?><br><br>
Noticia:</i></b>
<p align="justify">
<?echo "$var\n";?></p>
<p align="justify"><? echo "<a href=index.php?enlace=noticia_larga&noticia=".$damefila->id_noticia_articulo.">Leer +</a>";?></p>
<div align="justify"><br>
    <b>Lugar:</b><?echo $damefila->lugar;?>
  <br>
    <b>Fecha:</b><?echo $damefila->fecha;?>
  <br>
    <b>Categoria.</b><? echo $damefila->categoria;?>
  </p>
          <br>
          <?
               
//termina el bucle while
//Incluimos la barra de navegación 
echo"<p align=center>".$_pagi_navegacion."</p>"

         
//libero el conjunto de resultados
       
mysql_free_result($_pagi_result); 
 
}
else
{
    
//estoy recibiendo datos del fomulario de firmas
    //Formateamos un poco el formulario, por si acaso los datos son incorrectos

    //eliminamos las etiquetas HTML y PHP de las cadenas de texto
      
$autor strip_tags($_POST["autor"]);
        
$n_corta strip_tags($_POST["noticia"]);
        
$lugar strip_tags($_POST["lugar"]);
        
$titulo strip_tags($_POST["titulo"]);
        
$n_larga strip_tags($_POST["noticia_larga"]);
        
$categoria=$_POST["categoria"];
        if(
$categoria=="no")
        {
        echo 
"Tienes que seleccionar una categoria";
        }else{
        
//Cortamos las cadenas demasiado largas
    
$nombre=substr($autor,0,20);

//Comprobamos que el visitante se ha molestado en rellenar algo
    
if (strlen($autor)==and strlen($noticia)==0)
    {
?>
</div>
<div align="center"><b>Gracias por el envio de tu noticia</b>.<br><br>Pero se te agradeceria que rellenaras los campos para publicar tu noticia</div>

<?
    
}else{
        
//si alguno de los campos falta prefiero colocar un guión o "sin comentarios"
        
if (!$autor)$autor="-";
        if (!
$noticia$noticia="No hay noticia";

//Generamos la ssql e insertamos el registro
        
$ssql "INSERT INTO noticias_articulos (autor,lugar,titulo,n_corta,n_larga,categoria,fecha) VALUES ('" $autor "','".$lugar."','" $titulo "','".$n_corta."','".$n_larga."','".$categoria."',CURDATE())";
        
//echo $ssql . "<p>";
mysql_query($ssql,$conn);
?>
<div align="center"><b>Muchas gracias por tu participaci&oacute;n</b></div>
<?
    
}
?>
    <br>
    <br>
    <div align="center" class="Estilo6"><b><a href="index.php" >Volver a la pagina principal</a></b></div>
    <span class="Estilo6">
    <?
}
}
mysql_close($conn);
?>
    </span>
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸[email protected]°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #2 (permalink)  
Antiguo 05/03/2005, 22:33
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 14 años, 1 mes
Puntos: 0
y aqui esta el archivo pagin_noticias.php

Código PHP:
<?php

if(empty($_pagi_sql)){
    
//Si no se definió $_pagi_sql... error!
    
die("<b>Error paginación : </b>No se ha definido la variable \$_pagi_sql");
}

if(empty(
$_pagi_cuantos)){
    
//Si no se ha especificado la cantidad de registros por página
    //$_pagi_cuantos será por defecto 20
    
$_pagi_cuantos 10;
}

if (empty(
$_GET['pg'])){
    
//Si no se ha hecho click a ninguna página específica
    //O sea si es la primera vez que se ejecuta el script
    //$_pagi_actual es la pagina actual-->será por defecto la primera.
    
$_pagi_actual 1;
}else{
    
//Si se "pidió" una página específica:
    //La página actual será la que se pidió.
    
$_pagi_actual $_GET['pg'];
}

//Contamos el total de registros en la BD (para saber cuántas páginas serán)
$_pagi_sqlConta eregi_replace("select (.*) from""SELECT COUNT(*) FROM"$_pagi_sql);
$_pagi_result2 mysql_query($_pagi_sqlConta) or die ("Error en la consulta de conteo de registros. Mysql dijo: <b>".mysql_error()."</b>");
$_pagi_totalReg mysql_result($_pagi_result2,0,0);//total de registros

//Calculamos el número de páginas (saldrá un decimal)
//con ceil() redondeamos y $_pagi_totyalPags será el número total (entero) de páginas que tendremos
$_pagi_totalPags ceil($_pagi_totalReg $_pagi_cuantos);


//Creamos la navegación a páginas específicas. Una línea tipo: <<anterior 1 2 3 4 siguiente>>

//La idea es pasar también en los enlaces las variables hayan llegado por url.
$_pagi_enlace $_SERVER['PHP_SELF'];
$_pagi_query_string "?";
if(isset(
$_GET)){
    
//Si ya se han pasado variables por url, escribimos el query string concatenando
    //los elementos del array $_GET excepto la variable $_GET['pg'] si es que existe.
    
$_pagi_variables $_GET;
    foreach(
$_pagi_variables as $_pagi_clave => $_pagi_valor){
        if(
$_pagi_clave != 'pg'){
            
$_pagi_query_string .= $_pagi_clave."=".$_pagi_valor."&";
        }
    }
}

//Añadimos el query string a la url.
$_pagi_enlace .= $_pagi_query_string;

//La variable $_pagi_navegacion contendrá los enlaces a las páginas.
$_pagi_navegacion '';

if (
$_pagi_actual != 1){
    
//Si no estamos en la página 1. Ponemos el enlace "anterior"
    
$_pagi_url $_pagi_actual 1;//será el número de página al que enlazamos
    
$_pagi_navegacion .= "<a href='".$_pagi_enlace."pg=".$_pagi_url."'>&laquo; Anterior</a>&nbsp;";
}

//Enlaces a números de página:
for ($_pagi_i 1$_pagi_i<=$_pagi_totalPags$_pagi_i++){//Desde página 1 hasta última página ($_pagi_totalPags)
    
if ($_pagi_i == $_pagi_actual) {
        
//Si el número de página es la actual ($_pagi_actual). Se escribe el número, pero sin enlace y en negrita.
        
$_pagi_navegacion .= "<b>&nbsp;$_pagi_i&nbsp;</b>";
    }else{
        
//Si es cualquier otro. Se escibe el enlace a dicho número de página.
        
$_pagi_navegacion .= "<a href='".$_pagi_enlace."pg=".$_pagi_i."'>".$_pagi_i."</a>&nbsp;";
    }
}

if (
$_pagi_actual $_pagi_totalPags){
    
//Si no estamos en la última página. Ponemos el enlace "Siguiente"
    
$_pagi_url $_pagi_actual 1;//será el número de página al que enlazamos
    
$_pagi_navegacion .= "<a href='".$_pagi_enlace."pg=".$_pagi_url."'>Siguiente &raquo;</a>";
}
//Hasta acá hemos completado la "barra de navegación"

//Calculamos desde qué registro se mostrará en esta página
//Recordemos que el conteo empieza desde CERO.
$_pagi_inicial = ($_pagi_actual-1) * $_pagi_cuantos;

//Consulta SQL. Devuelve $cantidad registros empezando desde $_pagi_inicial
$_pagi_sqlLim $_pagi_sql." LIMIT $_pagi_inicial,$_pagi_cuantos";
$_pagi_result mysql_query($_pagi_sqlLim) or die ("Error en la consulta limitada. Mysql dijo: <b>".mysql_error()."</b>");

//A partir de aquí quedan disponibles dos variables:
//$_pagi_navegacion : que contiene los enlaces para navegar por las páginas
//$_pagi_result : que contiene el id del resultado de la consulta a la BD para los registros de la página actual.
?>
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸[email protected]°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #3 (permalink)  
Antiguo 06/03/2005, 09:05
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Que es lo que falla? ¿Muestra algun mensaje de error?

Por cierto, parece ser el Paginator de jpinedo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 06/03/2005, 11:22
 
Fecha de Ingreso: noviembre-2003
Ubicación: Puente de ixtla
Mensajes: 773
Antigüedad: 14 años, 1 mes
Puntos: 0
Si es el paginador de jpinedo y pues cuando solo hay una pagina no hay problema pero si hay 2 o tres paginas y te quieres ir a lapagina 2 solamente no se muestra nada de la pagina
__________________
°º¤ø,¸¸,ø¤º°`°º¤ø,¸[email protected]°º¤ø,¸¸,ø¤º°`°º¤ø,¸.
Dios solo nos dio el 0 y el 1 y con solo eso hemos construido un universo
  #5 (permalink)  
Antiguo 06/03/2005, 18:26
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Pues hay que saber que la información que se incluye entre comentarios en los archivos no está de más. Si la hubieras conservado podrías haber visitado la web de Paginator para buscar sobre el problema y sabrías además qué versión es la que tienes.
Lo que puedo ver es que estás utilizando una de las primeras versiones de Paginator (creo que la 1.1).
Visita la web de Paginator y descarga la última versión. Fíjate sobretodo en lo que hace la variable $_pagi_propagar.

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:58.