Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/11/2010, 07:39
jose82vcf
 
Fecha de Ingreso: noviembre-2010
Ubicación: Valencia
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Paginacion de resultados desde un formulario

Gracias Kaninox por la respuesta,

La verdad que no entiendo mucho de PHP i lo que hice fue intentar adaptar un sript que encontré y no sé si lo estoy haciendo bien. Te pego el codigo de la paginacion y si me puedes resolver mi duda te estaré eternamente agradecido.

Código PHP:
<?php
                              
$existen
=0//Esta varibale sirve para saber si hay registros o no de lo que hemos buscado.
$contador=0//Esta variable sirve para cargar las imagenes en un frame.
                              
  //conexión a la base de datos
  
$db=mysql_connect("localhost","root","");
  
mysql_select_db("anvi_immobiliaria",$db);
  
  
$registros 5;
  
$pagina $_POST['pag'];
  if (
is_numeric($pagina))
      
$inicio =(($pagina-1)*$registros);
      else
      
$inicio 0;
    
  
//Recogemos los datos del formulario de búsqueda.
  
$tipo=$_POST['tipo'];
  
$venta=$_POST['compra'];
  
$poblacion=$_POST['poblaciones'];*/
 
// En el siguiente bucle IF, guardamos la sentencia SQL en $sql dependiendo de la busqueda que haga el usuario.

if ($poblacion<>"no")
    {
    if (
$venta=="si")
      {
    
$sql="SELECT `pisos`. * FROM pisos
        WHERE ((`pisos`.`tipo` = \"$tipo\") AND (`pisos`.`venta` = \"Venta\") AND (`pisos`.`localidad` = \"$poblacion\"))
        ORDER BY `pisos`.`codigo` ASC LIMIT $inicio,$registros"
;
        
$sql_total="SELECT `pisos`. * FROM pisos
        WHERE ((`pisos`.`tipo` = \"$tipo\") AND (`pisos`.`venta` = \"Venta\") AND (`pisos`.`localidad` = \"$poblacion\"))
        ORDER BY `pisos`.`codigo` ASC"
;
      }
      else
      {
        
$sql="SELECT `pisos`. * FROM pisos
        WHERE ((`pisos`.`tipo` = \"$tipo\") AND (`pisos`.`venta` = \"Alquiler\") AND (`pisos`.`localidad` = \"$poblacion\"))
        ORDER BY `pisos`.`codigo` ASC LIMIT $inicio,$registros"
;
        
$sql_total="SELECT `pisos`. * FROM pisos
        WHERE ((`pisos`.`tipo` = \"$tipo\") AND (`pisos`.`venta` = \"Alquiler\") AND (`pisos`.`localidad` = \"$poblacion\"))
        ORDER BY `pisos`.`codigo` ASC"
;
      }
    }
elseif (
$venta=="si")
      {
        
$sql="SELECT `pisos`. * FROM pisos
        WHERE ((`pisos`.`tipo` = \"$tipo\") AND (`pisos`.`venta` = \"Venta\"))
        ORDER BY `pisos`.`codigo` ASC LIMIT $inicio,$registros"
;
        
$sql_total="SELECT `pisos`. * FROM pisos
        WHERE ((`pisos`.`tipo` = \"$tipo\") AND (`pisos`.`venta` = \"Venta\"))
        ORDER BY `pisos`.`codigo` ASC"
;
      }
      else
      {
        
$sql="SELECT `pisos`. * FROM pisos
        WHERE ((`pisos`.`tipo` = \"$tipo\") AND (`pisos`.`venta` = \"Alquiler\"))
        ORDER BY `pisos`.`codigo` ASC LIMIT $inicio,$registros"
;
        
$sql_total="SELECT `pisos`. * FROM pisos
        WHERE ((`pisos`.`tipo` = \"$tipo\") AND (`pisos`.`venta` = \"Venta\"))
        ORDER BY `pisos`.`codigo` ASC"
;
      }


//En esta variable nos guardamos la sentencia antes registrada.
$res=mysql_query($sql,$db) or die ("Error en consulta: "mysql_error());

//Calculamos las paginas a mostrar
$res_total mysql_query($sql_total);
$num_registros mysql_num_rows($res_total);
$paginas ceil($num_registros/$registros);



//Bucle WHILE para recoorer todos los registros, mientras haya, e imprimirlos.
while ($reg=mysql_fetch_array($res)) {
  
  
/*$codigo=$reg[0];
  $venta=$reg[1];
  $tipo=$reg[2];
  $titulo=$reg[3];
  $texto=$reg[4];
  $precio=$reg[5];
  $foto=$reg[6];
  $foto2=$reg[7];
  $foto3=$reg[8];
  $foto4=$reg[9];
  $foto5=$reg[10];
  $localidad=$reg[11];
        
  $referencia=$codigo; //se utiliza más adelante en la maquetación.*/
        
  
$existen=1;//Lo inicializamos a 1 porque hemos entrado en el bucle y quiere decir quehay resultados.

    //Si es el tipo de immueble que busco, entonces entra.        
    
if ($tipo!="no")  {
                
    
//tabla per al tipo y titulo
    
echo "<br>";
    echo 
"<table width=\"570\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\"><tr><td class=tipo colspan=2>";
    echo 
"<p><b>$reg[venta]   $reg[tipo]</b></p>";
    echo 
"</td></tr><tr><td colspan=2>";
    echo 
"$reg[titulo]";
    echo 
"</td></tr>";
        
    
//fila per a la foto i el text
    
echo "<tr><td valign=\"middle\"><div align=\"left\">";
        
//visualitzar el text amb salts de línea
                
$texto="$reg[texto]";
        for (
$i=0;$i<strlen($texto);$i++) {
            if (
$texto[$i]!="\n")
                              echo 
"$texto[$i]";
            else  echo 
"<br>";
                    }
    echo 
"</div></td><td align=\"right\">";
    echo 
"<div align=\"right\">";
        
        
//Si el campo foto no está vacio, entonces entra.
                
$foto="$reg[foto]";
        if (
$foto!=null) {
            echo (
"<IFRAME SRC=\"fotos.php?foto=$foto\" scrolling=no noresize NAME=\"$contador\" HEIGHT=\"300\" WIDTH=\"350\">
                        Su navegador no soporta iFrames.
                        </IFRAME>"
);
        } 
//final if columna foto
    
echo "</div></td></tr>";
    echo 
"</table>";
    
//fi tabla
        
        
    //tabla per a les fotos xicotetes
    
echo "<table width=\"570\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr>";
    echo 
"<td>";
    echo 
"<div align=\"center\">";
        
//Si el campo foto no está vacio, procedemos a su inclusion en pequeño.
                
if ($foto!=null) {
                        echo 
"<a href=\"fotos.php?foto=$foto\" target=$contador>
                        <img border=0 src=\"fotos/$foto\" width=100></a>"
;
        } 
    echo 
"</div>";
    echo 
"</td>";
        
    echo 
"<td>";
    echo 
"<div align=\"center\">";
        
//Si el campo foto2 no está vacio, procedemos a su inclusion en pequeño.
                
$foto2="$reg[foto2]";
        if (
$foto2!=null) {
                        echo 
"<a href=\"fotos.php?foto=$foto2\" target=$contador>
                        <img border=0 src=\"fotos/$foto2\" width=100></a>"
;
        } 
        echo 
"</div>";
    echo 
"</td>";
    
        echo 
"<td>";
    echo 
"<div align=\"center\">";
        
//Si el campo foto3 no está vacio, procedemos a su inclusion en pequeño.
                
$foto3="$reg[foto3]";
            if (
$foto3!=null) {
                        echo 
"<a href=\"fotos.php?foto=$foto3\" target=$contador>
                        <img border=0 src=\"fotos/$foto3\" width=100></a>"
;
        } 
    echo 
"</div>";
    echo 
"</td>";
    
        echo 
"<td>";
    echo 
"<div align=\"center\">";
        
//Si el campo foto4 no está vacio, procedemos a su inclusion en pequeño.
                
$foto4="$reg[foto4]";
                if (
$foto4!=null) {
                        echo 
"<a href=\"fotos.php?foto=$foto4\" target=$contador>
                        <img border=0 src=\"fotos/$foto4\" width=100></a>"
;
        } 
    echo 
"</div>";
    echo 
"</td>";
    
        echo 
"<td>";
    echo 
"<div align=\"center\">";
        
//Si el campo foto5 no está vacio, procedemos a su inclusion en pequeño.
                
$foto5="$reg[foto5]";
            if (
$foto5!=null) {
                        echo 
"<a href=\"fotos.php?foto=$foto5\" target=$contador>
                        <img border=0 src=\"fotos/$foto5\" width=100></a>"
;
        } 
    echo 
"</div>";
    echo 
"</td>";
    
//Fin de la tabla
        
echo "</tr></table>";
        
        
$contador=$contador+1;
        
    
//tabla per al preu i la localitat
    
echo "<table width=\"570\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\"><tr><td>";
    echo 
"<table width=\"570\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td>";
        
$precio="$reg[precio]";
        if (
$precio!=null) {
            echo 
"$precio";
        }
    echo 
"</td><td>";
    echo 
"$reg[localidad]";
    echo 
"</td>";
    echo 
"</tr></table></td></tr></table>";//Fin tabla
    //echo "<p>$coment</p>";
    
        //tabla per a la referencia i fer reserva
    
echo "<table width=\"570\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\"><tr>";
    echo 
"<td class=\"lineas\">referencia: $reg[codigo]</td></tr></table>";
    }
//Final del if, cuando ya no comprueba que no hay más immuebles.
        
  
}//Final del while. Aqui acaba de mostrar todos los registros buscados. //final tipo!=null

//Aqui imprimimos la paginacion

    
if($pagina>1)
    {
        echo 
"<a href='resultados.php?pag=" . ($pagina-1) . "'>Anterior</a>";
        
//echo "<font face='verdana' size='-2'>anterior</font>";
        //echo "</a>&nbsp;";
    
}

    for(
$cont=1;$cont<=$paginas;$cont++)
    {
        if(
$cont==$pagina)
        {
            echo 
$cont " ";
        }else{
            echo 
"<a href='resultados.php?pag=" $cont "'>$cont</a>";
            
//echo "<font face='verdana' size='-2'>".$i."</font></a>&nbsp;";
        
}
    }
    if(
$pagina<1)
    {
        echo 
"<a href='resultados.php?pag=" . ($pagina+1) . "'>Siguiente</a>";
        
//echo "<font face='verdana' size='-2'>anterior</font>";
        //echo "</a>&nbsp;";
    
}