Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2012, 02:13
Avatar de pampa_
pampa_
 
Fecha de Ingreso: mayo-2006
Mensajes: 334
Antigüedad: 18 años, 6 meses
Puntos: 1
se me pierde el valor de la variable

hola a todos estoy amoldando un paginador+buscador que he encontrado en internet....

Va perfecto y es muy entendible, pero no se porque al arreglarlo yo y añadirle un campo mas para hacer busqueda resulta que la primera vez si que me saca el resultado pero si navego por el paginador pierde la variable por la que quiero buscar.... alguien sabria decirme que debo hacer para que no pierda la variable??

Gracias
este es el codigo
Código PHP:
Ver original
  1. <?php
  2. $link=mysql_connect("fdb.com", "anuncios", "1234");
  3.     mysql_select_db("anuncios", $link);
  4. ?>
Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>ejemplo de paginaci&oacute;n de resultados</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <meta http-equiv="Pragma" content="no-cache" />
  5. <style type="text/css">
  6. <!--
  7. a.p:link {
  8.     color: #0066FF;
  9.     text-decoration: none;
  10. }
  11. a.p:visited {
  12.     color: #0066FF;
  13.     text-decoration: none;
  14. }
  15. a.p:active {
  16.     color: #0066FF;
  17.     text-decoration: none;
  18. }
  19. a.p:hover {
  20.     color: #0066FF;
  21.     text-decoration: underline;
  22. }
  23. a.ord:link {
  24.     color: #000000;
  25.     text-decoration: none;
  26. }
  27. a.ord:visited {
  28.     color: #000000;
  29.     text-decoration: none;
  30. }
  31. a.ord:active {
  32.     color: #000000;
  33.     text-decoration: none;
  34. }
  35. a.ord:hover {
  36.     color: #000000;
  37.     text-decoration: underline;
  38. }
  39. -->
  40. </head>
  41. <body bgcolor="#FFFFFF">
  42. <script language="JavaScript">
  43. function muestra(queCosa)
  44. {
  45.     alert(queCosa);
  46. }
  47. <div align="center"><strong><font color="#000000" size="2" face="Verdana, Arial, Helvetica, sans-serif">Paginaci&oacute;n
  48.   de Resultados de una consulta SQL (sobre MySQL)<br><br></font></strong> </div>
  49. <hr noshade style="color:CC6666;height:1px">
  50. <br>
Código PHP:
Ver original
  1. <?php
  2.         //inicializo el criterio y recibo cualquier cadena que se desee buscar
  3.         $criterio = "";
  4.         if ($_GET["criterio"]!=""){
  5.             $txt_criterio = $_GET["criterio"];
  6.             $criterio = " where titulo like '%" . $txt_criterio . "%' ";
  7.           }elseif($_GET["sprovincia"]!=""){
  8.             $txt_criterio = $_GET["sprovincia"];
  9.             $criterio = " where provincia='$txt_criterio'";
  10.           }
  11.  
  12.  
  13.     $sql="SELECT * FROM anuncios ".$criterio;
  14.     $res=mysql_query($sql,$link);
  15.     $numeroRegistros=mysql_num_rows($res);
  16.     if($numeroRegistros<=0)
  17.     {
  18.         echo "<div align='center'>";
  19.         echo "<font face='verdana' size='-2'>No se encontraron resultados</font>";
  20.         echo "</div>";
  21.     }else{
  22.         //////////elementos para el orden
  23.         if(!isset($orden))
  24.         {
  25.             $orden="id_anuncio";;
  26.         }
  27.         //////////fin elementos de orden
  28.  
  29.         //////////calculo de elementos necesarios para paginacion
  30.         //tamaño de la pagina
  31.         $tamPag=5;
  32.  
  33.         //pagina actual si no esta definida y limites
  34.         if(!isset($_GET["pagina"])){
  35.             $pagina=1;
  36.             $inicio=1;
  37.             $final=$tamPag;
  38.         }else{
  39.             $pagina = $_GET["pagina"];
  40.         }
  41.         //calculo del limite inferior
  42.         $limitInf=($pagina-1)*$tamPag;
  43.  
  44.         //calculo del numero de paginas
  45.         $numPags=ceil($numeroRegistros/$tamPag);
  46.         if(!isset($pagina))
  47.         {
  48.                $pagina=1;
  49.                $inicio=1;
  50.                $final=$tamPag;
  51.         }else{
  52.             $seccionActual=intval(($pagina-1)/$tamPag);
  53.             $inicio=($seccionActual*$tamPag)+1;
  54.  
  55.             if($pagina<$numPags)
  56.             {
  57.                $final=$inicio+$tamPag-1;
  58.             }else{
  59.                 $final=$numPags;
  60.             }
  61.                
  62.                 if ($final>$numPags){
  63.                      $final=$numPags;
  64.             }
  65.         }
  66.  
  67.         //////////fin de dicho calculo
  68.  
  69.         //////////creacion de la consulta con limites
  70.         $sql="SELECT * FROM anuncios ".$criterio." ORDER BY ".$orden.",id_anuncio ASC LIMIT ".$limitInf.",".$tamPag;
  71.         $res = mysql_query($sql,$link) or die("Error en: $busqueda: " . mysql_error());;
  72.  
  73.         //////////fin consulta con limites
  74.         echo "<div align='center'>";
  75.         echo "<font face='verdana' size='-2'>encontrados ".$numeroRegistros." resultados<br>";
  76.         echo "ordenados por <b>".$orden."</b>";
  77.                 if(isset($txt_criterio)){
  78.         echo "<br>Valor filtro: <b>".$txt_criterio."</b>";
  79.                 }
  80.         echo "</font></div>";
  81.         echo "<table align='center' width='80%' border='0' cellspacing='1' cellpadding='0'>";
  82.         echo "<tr><td colspan='3'><hr noshade></td></tr>";
  83.         echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=id_anuncio&criterio=".$txt_criterio."'>Titulo</a></th>";
  84.         echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=id_anuncio&criterio=".$txt_criterio."'>Foto</a></th>";
  85.         echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=precio&criterio=".$txt_criterio."'>Precio</a></th>";
  86.         echo "<th bgcolor='#CCCCCC'><a class='ord' href='".$_SERVER["PHP_SELF"]."?pagina=".$pagina."&orden=fecha&criterio=".$txt_criterio."'>Fecha</a></th>";      
  87.         while($registro=mysql_fetch_array($res))
  88.         {
  89. ?>
Código HTML:
Ver original
  1. <!-- tabla de resultados -->
  2.   <tr bgcolor="#CC6666" onMouseOver="this.style.backgroundColor='#FF9900';this.style.cursor='hand';" onMouseOut="this.style.backgroundColor='#CC6666'"o"];" onClick="javascript:muestra('<? echo "[".$registro["titulo"]."] ".$registro["titulo"]." - ".$registro["precio"]." - ".$registro["fecha"]; ?>');">
  3.     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><?php echo $registro["titulo"]; ?></b></font></td>
  4.     <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><?[HIGHLIGHT="PHP"]
php echo "<img src='".$registro['foto1']."' WIDTH=105 HEIGHT=97></img>"; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><?php echo $registro["precio"]; ?></b></font></td>
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFCC"><b><?php echo $registro["fecha"]; ?></b></font></td>
</tr>
<!-- fin tabla resultados -->[/HIGHLIGHT]
Código PHP:
Ver original
  1. <?php
  2.         }//fin while
  3.         echo "</table>";
  4.     }//fin if
  5.     //////////a partir de aqui viene la paginacion
  6. ?>
Código HTML:
Ver original
  1. <br>
  2.     <table border="0" cellspacing="0" cellpadding="0" align="center">
  3.     <tr><td align="center" valign="top">
Código PHP:
Ver original
  1. <?php
  2.     if($pagina>1)
  3.     {
  4.         echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
  5.         echo "<font face='verdana' size='-2'>anterior</font>";
  6.         echo "</a>&nbsp;";
  7.     }
  8.  
  9.     for($i=$inicio;$i<=$final;$i++)
  10.     {
  11.         if($i==$pagina)
  12.         {
  13.             echo "<font face='verdana' size='-2'><b>".$i."</b>&nbsp;</font>";
  14.         }else{
  15.             echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_criterio."'>";
  16.             echo "<font face='verdana' size='-2'>".$i."</font></a>&nbsp;";
  17.         }
  18.     }
  19.     if($pagina<$numPags)
  20.     {
  21.         echo "&nbsp;<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criterio=".$txt_criterio."'>";
  22.         echo "<font face='verdana' size='-2'>siguiente</font></a>";
  23.     }
  24.     //////////fin de la paginacion
  25. ?>
Código HTML:
Ver original
  1. </td></tr>
  2.     </table>
  3. <hr noshade style="color:CC6666;height:1px">
  4. <div align="center"><font face="verdana" size="-2"><a class="p" href="index.php">::Inicio::</a></font></div>
  5.  
  6. <form action="servicios.php" method="get">
  7. Criterio de búsqueda:
  8. <input type="text" name="criterio" size="22" maxlength="150">
  9.  
  10.                 <select style="width:60%" id="sprovincia" name="sprovincia">
  11.                             <option value="selec" selected="selected">-seleccione provincia-</option>
  12.                                     <option value="alava">&Aacute;lava</option>
  13.                                     <option value="albacete">Albacete</option>
  14.                                     <option value="alicante">Alicante</option>
  15.                                     <option value="almeria">Almer&iacute;a</option>
  16.                                     <option value="asturias">Asturias</option>
  17.                                     <option value="avila">&Aacute;vila</option>
  18.                                     <option value="badajoz">Badajoz</option>
  19.        
  20.                                     <option value="barcelona">Barcelona</option>
  21.                                     <option value="burgos">Burgos</option>
  22.                                     <option value="caceres">C&aacute;ceres</option>
  23.                                     <option value="cadiz">C&aacute;diz</option>
  24.                                     <option value="cantabria">Cantabria</option>
  25.                                     <option value="castellon">Castell&oacute;n</option>
  26.        
  27.                                     <option value="ciudad real">Ciudad Real</option>
  28.                                     <option value="cordoba">C&oacute;rdoba</option>
  29.                                    
  30.                                     <option value="cuenca">Cuenca</option>
  31.                                     <option value="girona">Girona</option>
  32.                                     <option value="granada">Granada</option>
  33.                                     <option value="guadalajara">Guadalajara</option>
  34.        
  35.                                     <option value="guipuzcoa">Guip&uacute;zcoa</option>
  36.                                     <option value="huelva">Huelva</option>
  37.                                     <option value="huesca">Huesca</option>
  38.                                     <option value="islas baleares">Islas Baleares</option>
  39.                                     <option value="jaen">Ja&eacute;n</option>
  40.                                     <option value="la coru&ntilde;a">La Coru&ntilde;a</option>
  41.        
  42.                                     <option value="la rioja">La Rioja</option>
  43.                                     <option value="las palmas">Las Palmas</option>
  44.                                     <option value="leon">Le&oacute;n</option>
  45.                                     <option value="lerida">L&eacute;rida</option>
  46.                                     <option value="lugo">Lugo</option>
  47.                                     <option value="madrid">Madrid</option>
  48.        
  49.                                     <option value="malaga">M&aacute;laga</option>
  50.                                     <option value="murcia">Murcia</option>
  51.                                     <option value="navarra">Navarra</option>
  52.                                     <option value="orense">Orense</option>
  53.                                     <option value="palencia">Palencia</option>
  54.                                        
  55.                                     <option value="zaragoza">Zaragoza</option>
  56.                     </select>
  57.  
  58. <input type="submit" value="Buscar">
  59. </form>
  60.  
  61. </body>
  62. </html>