Foros del Web » Programando para Internet » PHP »

Paginar busqueda en php

Estas en el tema de Paginar busqueda en php en el foro de PHP en Foros del Web. Hola. Estoy haciendo paginacion de resultados en php y mysql, hacer esa pagina no hay problema, sin embargo si tengo una busqueda y recibo el ...
  #1 (permalink)  
Antiguo 15/09/2013, 15:59
 
Fecha de Ingreso: julio-2012
Mensajes: 138
Antigüedad: 7 años, 4 meses
Puntos: 4
Pregunta Paginar busqueda en php

Hola.
Estoy haciendo paginacion de resultados en php y mysql, hacer esa pagina no hay problema, sin embargo si tengo una busqueda y recibo el valor de la busqueda por $_GET, se pierde ese valor al pagina los siguientes registro, no se si me doy a explicar...
Basicamente hago esto:
Código PHP:
Ver original
  1. <a href="resultados.php?palabra=hola">hola</a>
  2. <?php
  3. include ('con.php');
  4.  
  5. $noRegistros = 3; //Registros por página
  6. $pagina = 1; //Por default, página = 1
  7.  
  8. if($_GET["pagina"]) //Si hay página por ?pagina=valor, lo asigna
  9.     $pagina = $_GET["pagina"];
  10.     $palabra = $_GET["palabra"];
  11. echo "Pagina: ".$pagina."<hr>";
  12.  
  13. //Utilizo el comando LIMIT para seleccionar registros
  14. $sSQL = "SELECT * FROM post LIMIT ".($pagina-1)*$noRegistros.",$noRegistros";
  15. $result = mysql_query($sSQL) or die(mysql_error());
  16. while($row = mysql_fetch_array($result)) { //Exploracion comun de registros
  17.     echo $row["title"]."<br>";
  18. }
  19.    
  20. //Imprimiendo páginas
  21. $sSQL = "SELECT count(*) FROM post"; //Cuento el total de registros
  22. $result = mysql_query($sSQL);
  23. $row = mysql_fetch_array($result);
  24. $totalRegistros = $row["count(*)"]; //Almaceno el total en una variable
  25.  
  26. echo "<hr>Total registros: ".$totalRegistros.", Pagina: ";
  27.  
  28. $noPaginas = $totalRegistros/$noRegistros; //Determino la cantidad de páginas
  29. for($i=1; $i<$noPaginas+1; $i++) { //Imprimo las páginas
  30.     if($i == $pagina)
  31.         echo "$i "; //A la página actual no le pongo link
  32.     else
  33.         echo "<li><a href=\"?pagina=".$i."?palabra=".$palabra."\">".$i."</a></li> ";
  34. }
El codigo para paginar normal es entendible, pero la duda es como combino la paginacion con un parametro $_GET adicional...

En que parte del codigo le digo que mantenga ese valor....

Gracias.
__________________
Keep learning, someday the knowledge will be your future...
  #2 (permalink)  
Antiguo 15/09/2013, 17:12
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 6 años, 3 meses
Puntos: 55
Respuesta: Paginar busqueda en php

Hola, el problema es que no estas utilizando el parámetro adicional en ningun lado. En tu caso la variable $palabra solo entra y se pasa al link, lo que debes hacer es incluirla en tu consulta SQL con un WHERE.

1.-Es muy importante que filtres tus variables que recibes del navegador. Evitaras inseguridad.

Aca algo de info.

http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL
http://php.net/manual/es/function.my...ape-string.php

2.- Mysql esta obsoleta, cambia a mysqli.

3.- No filtras la salida, eres propenso a XSS. Revisa esto
http://php.net/manual/es/function.htmlentities.php

Eso es como base.
Espero te sirva.

Saludos

Etiquetas: busqueda, mysql, paginar, registro, select, sql, variable
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 11:15.