Foros del Web » Programando para Internet » PHP »

HELP! Paginacion para php5

Estas en el tema de HELP! Paginacion para php5 en el foro de PHP en Foros del Web. hola chicos, vereis, tengo un problemita... si otro para variar en mi editor de noticias, al que gracias a dios ya puedo acceder, tenía una ...
  #1 (permalink)  
Antiguo 14/09/2007, 17:20
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 16 años, 10 meses
Puntos: 0
HELP! Paginacion para php5

hola chicos, vereis, tengo un problemita... si otro para variar en mi editor de noticias, al que gracias a dios ya puedo acceder, tenía una tabla formulario para editar las entradas con una paginación, este archivo:

Código:
<?php
session_start();
if (!isset($_SESSION["id"])){
header("location:index.php");
} else { ?>

<html>
<head>

 <script language="JavaScript" >
 function mostrar(){ }
</script>

<title>IMPRESSIVE MADONNA - ADMINISTRACION</title>
<LINK REL="stylesheet" TYPE="text/css" HREF="1.css">
<script language="Javascript">
function preguntar(id,foto){
if (confirm("¿Deseas eliminar este registro?")){
window.location.href ="f_borrar.php?id="+id+"&foto="+foto+"";
}
//else{alert('Operación cancelada');}
}
</script>

</head>
<body onLoad="mostrar()">
<?php
$nomBoton  = $_POST["b1"];
?>
<?php
echo "<CENTER><font size='2' face='Verdana'><B>REPORTE GENERAL DE NOTICIAS</B></font></CENTER>";

              include("conexion.php");
              $tabla="tb_noticias";
              mysql_select_db($database);
$registros = 100;

if (!$pagina) { 
    $inicio = 0; 
    $pagina = 1; 
} 
else { 
    $inicio = ($pagina - 1) * $registros;
    //echo $inicio;
} 

                $resultado = mysql_query("SELECT id_noticia FROM tb_noticias");
                $total_registros = mysql_num_rows($resultado); 
                $resultado = mysql_query("SELECT * FROM tb_noticias ORDER BY fecha DESC, id_noticia DESC LIMIT $inicio, $registros",$link);        
                $total_paginas = ceil($total_registros / $registros); 


                //$resultado=mysql_query("select * from tb_noticias ORDER BY fecha DESC, id_noticia DESC",$link);
                //$num=mysql_num_rows ($resultado);
                 $orden=0;
 if ($total_registros == 0)
 {
 echo "<center>NO SE ENCONTRARON RESULTADOS VALIDOS</center>";
 }
 else
 {
 echo "<table align=center border=1 bordercolor=black cellpadding=3 cellspacing=0 width=100%><tr><td>Nombre</td><td>Noticia</td><td>Fecha</td><td>Foto</td><td>Borrar</td><td>Editar</td></tr>";
  while ($row=mysql_fetch_array($resultado)){
 $v=$row["foto"];
 $variable=$row["id_noticia"];
 echo     "<tr><td>".$row["nombre"]."</td>";
 echo     "<td>".$row["noticia"]."</td>";
 echo     "<td>".$row["fecha"]."</td>";
 echo     "<td>";
 if ($v == "1"){ echo "<img src =fotos/$variable.jpg><br>";  } else { echo "<img src =fotos/blanco.jpg><br>";  }
 echo     "</td>";
 echo     "<td>

<a name='eliminar' id='eliminar'  href='javaScript:preguntar($variable,$v)'>ELIMINAR</a></td>"; //f_borrar.php?id=".$variable."&foto=".$v."
 echo     "<td><a href='0editarNoticia.php?id=".$variable."'>EDITAR</a></td>";
 echo     "</tr>";
 }
 }

?>
</table>
<br>
<?
mysql_free_result($resultado);                                
        
        if($total_registros) 
        {
                
                echo "<center>";
                
                if(($pagina - 1) > 0) {
                        echo "<a href='f_reportar.php?pagina=".($pagina-1)."'>< Anterior</a> ";
                }
                
                for ($i=1; $i<=$total_paginas; $i++){ 
                        if ($pagina == $i) 
                                echo "<b>".$pagina."</b> "; 
                        else
                                echo "<a href='f_reportar.php?pagina=$i'>$i</a> "; 
                }
          
                if(($pagina + 1)<=$total_paginas) {
                        echo " <a href='f_reportar.php?pagina=".($pagina+1)."'>Siguiente ></a>";
                }
                
                echo "</center>";
                
        }

?>

<br>
<?
mysql_close($link);
?>

<br>
<center>
<a href="user.php" >[ ATRAS ]</a>
</center>

</body>
</html>
<?php }?>
resulta que esto en php5 no funciona, le doy a los links y en vez de mostrarme más entradas se sigue quedándo en la página 1, alguna idea de cómo solucionarlo? he probado con el paginator, pero no me funciona con la sesiones, me vuelve al inicio y se queda tan pancho... ¿alguna idea?
  #2 (permalink)  
Antiguo 14/09/2007, 18:46
 
Fecha de Ingreso: febrero-2007
Mensajes: 58
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: HELP! Paginacion para php5

Lo primero que veo quizas este confundido es que con le das a $pagina ningun valor
$registros = 100;

if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros; // no es visto que le asignes algo antes a $pagina
LO QUE YO HARIA:
$inicio = ($_GET['pagina']-1) * $registros; // le mandas por el get cuando oprime en algun link
//echo $inicio;
}


Yo respondi algo similar fijate aqui:"http://www.forosdelweb.com/f18/presentar-5-5-a-517906/"
no lo puse como link porque no me dejar.. copialo y pegalo.
Saludos Nico
  #3 (permalink)  
Antiguo 15/09/2007, 05:47
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: HELP! Paginacion para php5

Nico, la verdad es que soy nueva con esto y el código que puse no lo he generado yo, con lo que estoy algo perdida, creo que entiendo lo que dices pero no sé muy bien donde ponerlo...

he cambiando esa linea que me dices y se me queda en el inicio, como en con el paginator, así que supongo que habrá mas cosas que que cambiar y claro, yo no tengo ni idea de cuales son...

si fueras tan amable de editar mi código con lo que piensas que debería cambiar te lo agradecería un montón.
  #4 (permalink)  
Antiguo 15/09/2007, 08:29
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: HELP! Paginacion para php5

Prueba asi:
Código PHP:
$pagina $_GET['pagina'];
$registros 100;

if (!
$pagina) { 
    
$inicio 0
    
$pagina 1

else { 
    
$inicio = ($pagina 1) * $registros;
    
//echo $inicio;

Tu problema es que nunca rescatas la variable por eso el contador no avanza.

Saludos.
  #5 (permalink)  
Antiguo 15/09/2007, 08:31
 
Fecha de Ingreso: febrero-2007
Mensajes: 58
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: HELP! Paginacion para php5

Bueno venia a responderte lo que te esta diciendo el esta perfecto.
Saludos y gracias de nuevo GatorV.
Te hago una breve explicacion de por que siempre entraba en el primro
como nunca rescatas la variable $pagina va estar vacio por eso no entraba a la condicion ELSE,
con la linea que te agrego GatorV ($pagina = $_GET['pagina'];) pagina puede llegar a tener algo, es decir si apretas en algun link ejemplo" Sigiente >", se enviara por el $_GET el nro de pagina y cuando entras se lo cargas a pagina $pagina = $_GET['pagina'];. Ahora lo que te puede llegar a pasar es que cuando presiones en algun link de la mismas pagina que rellame la misma pagina seguramente te vuelva la paginacion a la primera pagina, si te pasa eso es por que no les estas pasando la pagina en que estas, pasale el nro de pagina en que estas al link.

Espero a ver sido claro-
Nico

Última edición por nico8287; 15/09/2007 a las 08:40
  #6 (permalink)  
Antiguo 16/09/2007, 05:05
 
Fecha de Ingreso: junio-2007
Mensajes: 37
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: HELP! Paginacion para php5

muchas gracias por vuestros consejos chichos! ya funciona todo como debería! con sólo añadir ese

$pagina = $_GET['pagina'];

antes del numero de registros... si es que soy tocha, hasta que no lo veo escrito claramente no me doy nunca cuenta!!

muchisimas gracias otra vez!
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:57.