Paginación en PHP

Hola experto tengo una duda con una paginación en php. He creado 2 archivos en php.
El primero tiene este código:
-------------------------------------------------------------------------------------------------------------
<html>
<head>
</head>
<body>
<?php 
 $pagina=$_GET['pagina'];
 $tamano=10; 
 $inicio=($pagina-1)*$tamano;   
 $conexion=mysql_connect("localhost","root",""); 
 mysql_select_db("mysql",$conexion);
 $cadena="select name from help_keyword order by name limit ". $inicio .",". $tamano;
 //echo $cadena;
 $resultado=mysql_query($cadena);
 while ($final=mysql_fetch_assoc($resultado))
 {
  echo $final['name']; 
  echo "<br>";
 }
?>
</body>
</html>
----------------------------------------------------------------------------------------------------------------
y el segundo tiene este codigo:
<HTML>
<HEAD>
<TITLE>destino2.php</TITLE>
</HEAD>
<BODY>
<?php   
 $tamano=10;
 $conexion=mysql_connect("localhost","root",""); 
 mysql_select_db("mysql",$conexion);
 $cadena="select name from help_keyword";
 $resultado=mysql_query($cadena);
 $totalpaginas=ceil(mysql_num_rows($resultado)/$tamano); 
 if ($totalpaginas > 1)
 {
  for ($i=1;$i<=$totalpaginas;$i++)
  {
     if ($pagina == $i)
     // si muestro el índice de la página actual, no coloco enlace
     echo $pagina . " ";
     else
     {
     // si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
     echo "<a href='new3.php?pagina=" . $i. "' target='fila1'>" . $i . "</a> ";
   }
  }
 }  
?>
</BODY>
</HTML>
-------------------------------------------------------------------------------------------------------------
El segundo aparece en un marco en la parte inferior y como ves muestra los números de páginas. Cada vez que se hace clic en un numero se muestra en la parte superior el contenido de la primera página que muestra los registros.
Mi problema es que cada vez que hago clic en un numero de página SE PIERDE el valor de LA VARIABLE PÁGINA que necesito para indicarle que la página actual no debe tener vinculo. Como hago para que cada vez que hago clic no se me pierda el valor de la variable página o de la variable i que es la variable que se pasa a la otra página. Gracias

2 respuestas

Respuesta
1
Revisando tu código esta muy bien,
¿El nombre del primer .php es new3 correcto?(El de arriba)
Aquí hay un espacio entre la " y el . de la variable $i, verifica en el navegador que al estar sobre el link, te aparezca correctamente el new3.php?pagina=1.. 2... etc
Saludos
echo "<a href='new3.php?pagina=" . $i. "' target='fila1'>" . $i . "</a> ";
Gracias por responder amigo, al poner el mouse sobre los liks(números de página), si pasa el valor correcto, es decir pagina1, etc, mi problema es como hacer para que al hacer clic en una página esta se desactive porque como esa página se esta viendo no se puede volver hacer clic sobre ella, me explico, si hace clic en la página 2 ya no se puede volver hacer clic en la página 2 porque esa página se esta viendo, tendría que escoger otra página menos la 2. gracias
lo solucionas con un if
$pagina (tu pagina seleccionada)
if($i==$pagina){
echo $i;
}else{
<a href='new3.php?pagina=" . $i. "' target='fila1'>" . $i . "</a>
}
Eso intente hacer el problema es:
envio la variable pagina a new3.php, eso esta bien, pero cuando vuelvo hacer clic en la pagina que tiene este codigo
if($i==$pagina){
echo $i;
}else{
<a href='new3.php?pagina=" . $i. "' target='fila1'>" . $i . "</a>
}
Es decir en la página que llama a new3, la variable página pierde su valor.
Necesitas manejarlo todo en un mismo PHP, de lo contrario no es posible enviar variables a 2 páginas distintas al mismo tiempo, al menos no con PHP plano, necesitas de tecnología AJAX para lograrlo
Junta el código de abajo al final de tu primer php y con eso funcionará
Amigo me podrías ayudar a juntarlo porque no encuentro la forma de que coordine los 2 códigos. Gracias
Solo verifica la consulta que se haga, ya que la tienes un poco diferente a como yo las manejo
Saludos!
<html>
<head>
</head>
<body>
<?php 
 $tamano=10;
if(isset($_GET['pagina'])){
 $pagina=$_GET['pagina'];
}
$conexion=mysql_connect("localhost","root",""); 
 mysql_select_db("mysql",$conexion);
 $cadena="select name from help_keyword";
 $resultado=mysql_query($cadena);
 $totalpaginas=ceil(mysql_num_rows($resultado)/$tamano); 
 if ($totalpaginas > 1)
 {
  for ($i=1;$i<=$totalpaginas;$i++)
  {
     if ($pagina == $i)
     // si muestro el índice de la página actual, no coloco enlace
     echo $pagina . " ";
     else
     {
     // si el índice no corresponde con la página mostrada actualmente, coloco el enlace para ir a esa página
     echo "<a href='new3.php?pagina=" . $i. "' target='fila1'>" . $i . "</a> ";
   }
  }
 }
if(isset($_GET['pagina'])){
 $pagina=$_GET['pagina'];
 $tamano=10; 
 $inicio=($pagina-1)*$tamano;   
 mysql_select_db("mysql",$conexion);
 $cadena="select name from help_keyword order by name limit ". $inicio .",". $tamano;
 //echo $cadena;
 $resultado=mysql_query($cadena);
 while ($final=mysql_fetch_assoc($resultado))
 {
  echo $final['name']; 
  echo "<br>";
 }
}?>
</body>
</html>
Amigo no se visualiza ningún registro, tampoco se desactiva la página donde haces clic
¿Al hacer clic sobre el vínculo no se muestran los registros?
Haz un echo $cadena; para que veas que te esta trayendo.
Respuesta
1
Manda cada vez el valor de página a través de una variable en el GET...
loquesea.php?$_GET["pagina"];
Así siempre tendrás la variable, acuérdate de ponerla en todos los links de salto en los que se use.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas