[Ayuda] Destruir sesion al cambiar de pagina por href

Iniciado por Graphixx, 6 Enero 2013, 22:24 PM

0 Miembros y 1 Visitante están viendo este tema.

Graphixx

Estoy usando sesiones para paginar asi:
Código (php) [Seleccionar]

     <?php
//SELECT * FROM tabla ORDER BY date DESC LIMIT 10
$sql="select * from inventario where tipo_propiedad='Apartamento' ";

//Limito la busqueda
$TAMANO_PAGINA 2;

//examino la página a mostrar y el inicio del registro a mostrar
$pagina $_GET["pagina"];
if (!
$pagina) {
    
$inicio 0;
    
$pagina=1;
}
else {
    
$inicio = ($pagina 1) * $TAMANO_PAGINA;


session_start();
$_SESSION['sql']=$sql//pa poder que el paginador sepa la sentencia sql con que se estaba paginando

$link=mysql_connect("localhost","root","");
mysql_select_db("inmobiliaria",$link);

//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql $_SESSION['sql']." "$criterio;
$rs mysql_query($ssql,$link);
$num_total_registros mysql_num_rows($rs);
//calculo el total de páginas
$total_paginas ceil($num_total_registros $TAMANO_PAGINA);

//pongo el número de registros total, el tamaño de página y la página que se muestra
echo "Número de registros encontrados: " $num_total_registros "<br>";
echo 
"Se muestran páginas de " $TAMANO_PAGINA " registros cada una<br>";
echo 
"Mostrando la página " $pagina " de " $total_paginas "<p>"

//construyo la sentencia SQL
$ssql $_SESSION['sql']." " $criterio " limit " $inicio "," $TAMANO_PAGINA;
$rs mysql_query($ssql,$link);

if(
mysql_num_rows($rs)>0){
   echo 
"<center><table width='829'><tr><td>RESULTADOS ENCONTRADOS</td></tr>"

while($col=mysql_fetch_array($rs))
{
if($col["tipo_negocio"]=="venta"){
$titulo1="SE VENDE";
}elseif($col["tipo_negocio"]=="arriendo"){
$titulo1="SE ARRIENDA";
}elseif($col["tipo_negocio"]=="amoblado"){
$titulo1="APTO AMOBLADO";
}else{$titulo1="VENTA Y ARRIENDO";}


$sql_img="select * from fotos where codigo_fotos='$col[codigo]' LIMIT 1";
$resp_img=mysql_query($sql_img,$link) or die( "Error en query: $sql, el error  es: " mysql_error() );
$col_img=mysql_fetch_array($resp_img);

echo'<tr>
    <th width="230" scope="col" style="border-width: 1px;border: solid; border-color: #009933;">'
.strtoupper($col[tipo_propiedad]).' '.$titulo1.'</th>
    <th colspan="2" bgcolor="#009933" scope="col">'
.strtoupper($col[titulo]).'</th>
    <th width="201" rowspan="2" scope="col" style="border-width: 1px;border: solid; border-color: #009933;">CODIGO</br>'
.$col["codigo"].'</th>
  </tr>
  <tr>
    <td rowspan="9" style="border-width: 1px;border: solid; border-color: #009933;"><img src="admin/uploads/inmuebles/'
.$col_img["fotos"].'" width=250 height=200></td>
    <td width="235" bgcolor="#009933">&nbsp;</td>
    <td width="135" bgcolor="#009933">&nbsp;</td>
  </tr>
  <tr>
    <td><strong>Area: '
.$col["area"].'</strong></td>
    <td colspan="2" rowspan="7" style="border-width: 1px;border: solid; border-color: #009933;" valign="top">'
.substr($col["descripcion_propiedad"],0,395).'...</td>
  </tr>
  <tr>
    <td><strong>Ciudad: '
.$col["ciudad"].'</strong></td>
  </tr>
  <tr>
    <td><strong>Barrio: '
.$col["barrio"].'</strong></td>
  </tr>
  <tr>
    <td><strong>Cuartos: '
.$col["nro_habitaciones"].'</strong></td>
  </tr>
  <tr>
    <td><strong>Nro Baños Privados: '
.$col["nro_banos_privados"].'</strong></td>
  </tr>
  <tr>
    <td><strong>Nro Baños Sociales: '
.$col["nro_banos_sociales"].'</strong></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
   <tr>
    <td><strong>Precio:'
.$col["precio"].'</strong></td>
    <td colspan="2"><a href="index_vista_inmueble.php?codigo='
.$col["codigo"].'">Mas informacion...</a></td>
  </tr>
  <tr>
    <td colspan="4">&nbsp;</td>
  </tr>'
;
}
}
echo 
"</table></center><center>Página: ";
//muestro los distintos índices de las páginas, si es que hay varias páginas
if ($total_paginas 1){
    for (
$i=1;$i<=$total_paginas;$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='index_amoblados.php?pagina=" $i "&criterio=" $txt_criterio "'>" $i "</a> ";
    }
}
echo 
"</center></br>";
?>



el problema es que si no limpio la sesion cuando cambio de sesion en la pagina, se queda pegado el paginador en la ultima consulta que tuvo, alguien sabe como puedo limpiar la sesion pero solo cuando se usen los vinculos:

Código (html4strict) [Seleccionar]

   <td colspan="2" align="center"><strong><a href="index_amoblados.php">Apartamentos Amoblados</a></strong></td>
   <td colspan="2" align="center"><strong><a href="index_fincas.php">Fincas de Recreo</a></strong></td>
   <td colspan="2" align="center"><strong><a href="index_ventas.php">Ventas</a></strong></td>
   <td colspan="2" align="center"><strong><a href="index_arrendamientos.php">Arrendamientos</a></strong></td>


Ya encontre el error estaba en el paginador que en vez de usar $_SESSION['sql'] se debia usar solamente la sentencia $sql.
desaparecen las lineas:
session_start();
$_SESSION['sql']=$sql;

y se reemplaza $_SESSION['sql'] por $sql en las lineas necesarias.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

Ekel

no había pensado en usar sessiones para paginar, (no leí tu código)

pero esto te puede facilitar mucho eso de paginar:

http://onu.mx/OTY3

(requiere de login)

espero te sirva. (:

Graphixx

Gracias por el tip bro, yo para paginar use las magnificas instrucciones de esta pagina:
http://www.webnova.com.ar/articulo.php?recurso=458
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog

~ Yoya ~

@Graphixx un consejo para cuando vayas a postear un código, porque la verdad cuesta un poco entenderlo. Hay una regla que existe, no me acuerdo donde la lei pero es la siguiente (no me acuerdo exactamente como decia):

Tu código debe ser tan limpio que no necesites utilizar comentario para explicar como funciona.


Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.