Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2008, 15:39
Dimaggio
 
Fecha de Ingreso: diciembre-2007
Mensajes: 30
Antigüedad: 16 años, 5 meses
Puntos: 0
Select + Paginación

Hola compañeros!
Estoy haciendo 1 web y me atasco en un punto, he buscado largo y tendido pero es un problema bastante concreto (creo) y no he podido solucionarlo.
En el panel interno tengo 1 seccion en la que aparecen un listado de inmuebles, estos están paginados y funciona perfectamente, el problema viene porque también tengo un select para ordenar los resultados. tanto el select como la paginación funcionan perfectamente por separado pero al unirlo todo solo me saca correctamente la primera página y yo lo que quiero es que funcione también en las demás, no se si le tengo que pasar el parámetro de la página actual o ke hacer (llevo pocos meses en el mundo del php).
Os dejo el código para ver si algun alma caritativa me puede echar una mano:
Código:
	<?
              ////PAGINACION///
			
			$registros = 3;
				if (!$pagina)
				    {$inicio = 0;$pagina = 1;}
				else
				{    $inicio = ($pagina - 1) * $registros;}	
			?>


<!-- --------------------------------    LISTADO DE INMUEBLES empieza ---------------------------------------------- -->

<?php
       
  	//si viene del select ordenar, le pasamos el string para que ordene correctamente
     if (($_POST['ordenar_select'])
       {
         $link=conectarse();
         $consulta=mysql_query("SELECT*FROM inmuebles",$link);//1º consultamos el numero de registros totales
         $total_registros = mysql_num_rows($consulta);
         $order = mysql_escape_string( $_POST['ordenar_select'] );
         $consulta=mysql_query("SELECT*FROM inmuebles ORDER BY $order LIMIT $inicio, $registros",$link );
        } 
    
     else
        { 
        
         $link=conectarse();
         $consulta=mysql_query("SELECT*FROM inmuebles",$link);//1º consultamos el numero de registros totales
         $total_registros = mysql_num_rows($consulta);
         $consulta=mysql_query("SELECT*FROM inmuebles  ORDER BY id LIMIT $inicio, $registros",$link);         
        }
   
    /// Calculamos el número de páginas que hay
    $total_paginas = ceil($total_registros / $registros);
	
    ///3º MOSTRAMOS LOS RESULTADOS
    while($fila=mysql_fetch_array($consulta))
         {
		 $id = $fila["id"];
		 $tipo = $fila["tipo"];
		 $localidad = $fila["localidad"];
		 $zona = $fila["zona"];
		 $calle = $fila["calle"];
		 $numero_y_piso = $fila["numero_y_piso"];
		 $modo = $fila["modo"];
		 $precio = $fila["precio"];
		 $habitaciones = $fila["habitaciones"];
		 $baños = $fila["baños"];
		 $luz = $fila["luz"];
		 $telef_fijo = $fila["telef_fijo"];
         $calefaccion = $fila["calefaccion"];
		 $garaje = $fila["garaje"];
		 $metros = $fila["metros"];
		 $observaciones = $fila["observaciones"];
		 $foto_principal = $fila["foto_principal"];
		 $foto_2 = $fila["foto_2"];
         $foto_3 = $fila["foto_3"];
		 $foto_4 = $fila["foto_4"];
		 $propietario = $fila["propietario"];
		 $telefono = $fila["telefono"];
		 $aparece_portada = $fila["aparece_portada"];
		 $menu_movil = $fila["menu_movil"];

		 
   
 
         if ( $fila_color%2 == 0)
	        $color = "#FFFFFF";
	     else
	        $color = "#f7ffd9";
?>	  

    						   
	<div style="width:563px; overflow:hidden;">
		<table width="563px" cellpadding="0" cellspacing="0" border="0" bgcolor="<?=$color?>">
		    
			<tr>
			   	<td width="10%" height="21px"  class="listado_inmuebles" style="padding-left:7px;"><?=$id?></td>					
				<td width="8%" height="21px"  class="listado_inmuebles"><?=$tipo?></td>					
				<td width="12%" height="21px"  class="listado_inmuebles"><?=$localidad?></td>
				<td width="13%" height="21px"  class="listado_inmuebles"><?=$calle?></td>					
				<td width="10%" height="21px"  class="listado_inmuebles"><?=$modo?></td>					
				<td width="12%" height="21px"  class="listado_inmuebles"><?=$precio?>.000 &euro;</td>
				<td width="20%" height="21px"  class="listado_inmuebles"><?=$propietario?></td>
			    <td width="15%" height="21px"  class="listado_inmuebles"><a href="./index.php?menu=modificar_inmueble&&id=<?=$id?>" class="enlace4">editar</a> | <a href="#" class="enlace4" onClick="if (confirm('Seguro que desea eliminar el inmueble nº <?=$id?> ?')) window.location='./index.php?menu=categorias&&eliminar=<?=$id?>'">borrar</a></td>
			</tr>

		</table>
		 
	 </div>


<?php
     $fila_color++;
     }  // while
?>

<!-- -------------------------------------- LISTADO DE INMUEBLES acaba ---------------------------------------------- -->
						   
						</td>
					 </tr>
					 
					 <!-- Última fila, parte de abajo de la tabla -->
					 <tr>
			            <td width="567px" height="15px"><img src="img/tabla_abajo.jpg" width="567px" height="15px"></td>
			         </tr>
				  </table>
			   </td>
			</tr>
	     </table>
		  
	  </td>

	  <!-- Separación del cuerpo con el borde derecho de la página -->
	  <td width="12px" height="371px"><img src="img/pixel_transparente.gif"></td>

	<!-- Sombra del cuerpo -->
	  <td background="img/sombra_dcha.jpg" width="10px" height="371px" valign="top"></td>
   </tr>
   <tr><td colspan="5" style="text-align:center; padding-left:170px;">
    

<?

/// Enseña la paginación si hay más productos encontrados que la limitación que hicimos
if ($total_registros > $registros)
   {
   /// En primer lugar construimos el enlace de "anterior", que restará páginas, se pone de dos formas, con enlace si toca y si estamos en la pagina 1 como texto
   if(($pagina - 1) > 0)
      { ?>
      <a href="index.php?menu=categorias&pagina=<?=$pagina-1?>" class="enlace_pagina" ><span style="padding-right:15px;">Anterior</span><img src="./img/flecha_izq.gif" width="13" height="10" border="0"></a>
   <? }

   else
      {  ?>
      <span class="sin_pagina"><span style="padding-right:15px;">anterior</span><img src="./img/flecha_izq_gris.gif" width="13" height="10" border="0"></span>
  <?  }
	     
   /// Ahora creamos un bucle para escribir la numeración de las páginas     
   for ($i=1; $i<=$total_paginas; $i++)
      {
      if ($i == $pagina)
         echo "<span class='enlace_numero'>&nbsp;&nbsp;<b>".$pagina."</b>&nbsp;&nbsp;</span>";
      else
         { ?>
         &nbsp;<a href="index.php?menu=categorias&pagina=<?=$i?>" class="enlace_pagina">&nbsp;<?=$i?>&nbsp;</a>&nbsp;
      <? }
      }//for

   /// Ahora por último, contruimos el "siguiente" como enlace o como texto, depende ande estemos
   if( $pagina < $total_paginas )
      { ?> 
      <a href="index.php?menu=categorias&pagina=<?=$pagina+1?>" class="enlace_pagina"><img src="./img/flecha_dcha.gif" width="13" height="10" border="0"><span style="padding-left:15px;">siguiente</span></a>
   <? }
         
   else
      { ?>
      <span class="sin_pagina"><img src="./img/flecha_dcha_gris.gif" width="13" height="10" border="0"><span style="padding-left:15px;">siguiente</span></span>
   <? }

   } /// Cierra el if de mostrar paginación

?>
Muchisimas gracias por adelantado