Foros del Web » Programando para Internet » PHP »

paginacion no funciona

Estas en el tema de paginacion no funciona en el foro de PHP en Foros del Web. Hola... la situacion es esta: tengo tres comboboxes (select) y dependiendo de los valores de los tres combos se hace un "Select * From" a ...
  #1 (permalink)  
Antiguo 01/07/2004, 11:59
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
paginacion no funciona

Hola... la situacion es esta: tengo tres comboboxes (select) y dependiendo de los valores de los tres combos se hace un "Select * From" a una base de datos.... dicha seleccion funciona pero la paginacion solo me muestra los primeros 10 registros y cuando quiero pasar a la segunda pagina para ver los otros registros restantes que fueron econtrados, el enlace no los muestra, o sea, no muestra la pagina 2 de la paginacion... lo que tengo es esto:

tengo un simple form con html:

<form name=form action="catalogo.php" method="POST">
<select name="cod_tipo">
<option value="0">Terreno</option>
<option value="1">Casa</option>
<option value="2">Terreno con construccion</option>
<option value="3">Recreacional o Playa</option>
<option value="4">Agricola o Finca</option>
<option value="5">Locales o edificios</option>
<option value="6">Lotificacion</option>
<option value="7">Otros inmuebles</option>
</select>

<SELECT onchange=cambia_provincia() name="cod_departamento">
<OPTION value="0" selected>Seleccione...
<OPTION value="1">San Salvador
<OPTION value="2">Santa Ana
<OPTION value="3">San Miguel
<OPTION value="4">La Libertad
<OPTION value="5">Usulutan
<OPTION value="6">Sonsonate
<OPTION value="7">La Union
<OPTION value="8">La Paz
<OPTION value="9">Chalatenango
<OPTION value="10">Cuscatlan
<OPTION value="11">Hahuachapan
<OPTION value="12">Morazan
<OPTION value="13">San Vicente
<OPTION value="14">Cabañas
</OPTION>
</SELECT>

<select name="cod_extension">
<option value="0">cualquiera </option>
<option value="1">0 a 199 v&sup2;</option>
<option value="2">200 a 499 v&sup2;</option>
<option value="3">500 a 999 v&sup2;</option>
<option value="4">1000 a 4,999 v&sup2;</option>
<option value="5">1 a 10 manzanas</option>
<option value="6">11 a 50 manzanas</option>
<option value="7">mas de 50 manzanas</option>
//así tendrías que hacer con el resto de valores
</select>

<select name="cod_numHabitaciones">
<option value="0">no se aplica</option>
<option value="1">1-3</option>
<option value="2">4-6</option>
<option value="3">mas de 6</option>
//así tendrías que hacer con el resto de valores
</select>
<input name="buscar" type="submit" value="buscar">
</form>


y el archivo que muestra la seleccion de registros y la paginacion que no muestra la pagina 2 es (sospecho que el error es el que esta en "negrita"):

// Datos de conexión a la base
$base="terrabase";
$conn=mysql_connect("localhost","","");
mysql_select_db($base,$conn);

$departamento=$_POST["cod_departamento"];
$municipio=$_POST["municipio"];
$numHabitaciones=$_POST["cod_numHabitaciones"];
$extension=$_POST["cod_extension"];
$tipo=$_POST["cod_tipo"];
$variable=$_POST["cod_departamento"].$_POST["municipio"].$_POST["cod_numHabitaciones"].$_POST["cod_extension"].$_POST["cod_tipo"];

$clausulaWhere="cod_tipo='$tipo' AND cod_departamento='$departamento' AND municipio='$municipio'";
if ($numHabitaciones!=0){
$clausulaWhere.="AND cod_numHabitaciones='$numHabitaciones'";
}

if ($extension!=0){
$clausulaWhere.="AND cod_extension='$extension'";
}
//$query="select * From propiedades Where ".$clausulaWhere;

$TAMANO_PAGINA = 10;

//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;
}
//miro a ver el número total de campos que hay en la tabla con esa búsqueda
$ssql = "Select * From propiedades Where ".$clausulaWhere;
$rs = mysql_query($ssql,$conn);
$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 = "select * from propiedades Where codigo=".$clausulaWhere." limit " . $inicio . "," . $TAMANO_PAGINA;
$rs = mysql_query($ssql);

$result=mysql_db_query("terrabase",$ssql);
while($fila=mysql_fetch_object($result)){
// demas instrucciones
}
//cerramos el conjunto de resultado y la conexión con la base de datos
mysql_free_result($rs);
mysql_close($conn);
//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='catalogo.php?pagina=" . $i . "codigo=0&cod_tipo=".$tipo."&cod_departamento=".$d epartamento."&municipio=".$municipio."&cod_extensi on=".$extension."&cod_numHabitaciones=".$numHabita ciones."&buscar=buscar'>" . $i . "</a>";
}

si saben donde esta el error o conocen algun tutorial relacionado se los agradecere mucho

muchas gracias

Última edición por Ludwingg; 01/07/2004 a las 12:06
  #2 (permalink)  
Antiguo 01/07/2004, 20:04
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
nesesito ayuda por favor...
  #3 (permalink)  
Antiguo 01/07/2004, 20:23
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Ok... lo que pasa es que al setear las variables lo haces vía POST y al propagarlas lo haces vía URL... o sea GET... al comienzo del script pones:
Código PHP:
$municipio=$_POST["municipio"]; 
Puedes poner por ejemplo:
Código PHP:
if(isset($_POST['municipio'])){//si ha sido enviada por POST
   
$municipio $_POST['municipio'];//recoger la del formulario
}elseif(isset($_GET['municipio'])){//Si ha sido enviada por GET
   
$municipio $_GET['municipio'];//recoger la de la URL

Saludos
  #4 (permalink)  
Antiguo 01/07/2004, 23:08
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Gracias Jpinedo, ahora puedo ver la pagina numero 2 de la paginacion, pero cuando intento regresar a la pagina 1, la paginacion ya no funciona... mas concejos por favor, el proplema siempre se da en:

//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='this.php?pagina=" . $i . "&tipo=".$cod_tipo."&buscar=buscar'>" . $i . "</a>";
}
}

(perdon por las molestias, soy un principiante en dificultades)...

muchas gracias
  #5 (permalink)  
Antiguo 02/07/2004, 12:35
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Por mas que intento comprender, no puedo, ahora se muestran los registros restantes en la pagina 2 de la paginacion gracias a jpinero, pero cuando regreso a la pagina 1 para ver los primeros registros, ya no los muestra... ¿que mas debo hacer???

muchas gracias por cualquier ayuda
  #6 (permalink)  
Antiguo 03/07/2004, 18:53
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Bueno... con los pocos datos que das tendríamos que "adivinar"...
+¿Te da algún mensaje de error?.
+¿Qué sale en la barra de direcciones como URL?
+¿Sólo pasa con la página número 1?
+¿Qué es this.php?... ¿No era catalogo.php?

Mientras más datos... más fácil ayudarte.

Saludos
  #7 (permalink)  
Antiguo 03/07/2004, 21:39
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
Jpinedo, pues gracias a tu Paginator 1.1, he logrado gran parte de lo que necesitaba hacer, solo tengo una pregunta acerca del paginator:

¿como puedo hacer para mostar el numero de registros que se visualizan??? ejemplo:

en la primera pagina de la paginacion decir esto: "Mostrando registros del 1 al 10" y en la segunda parte de la paginacion decir: "Mostrando registros del 11 al 20" y asi sucesivamente...

muchas gracias
  #8 (permalink)  
Antiguo 04/07/2004, 20:33
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Sería más o menos así:
Código PHP:
$desde $_pagi_inicial+1
$hasta $_pagi_inicial+$_pagi_cuantos
echo 
"Mostrando registros del: $desde hasta $hasta de un total de $_pagi_totalReg"
Saludos

Última edición por jpinedo; 04/07/2004 a las 23:51
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 22:59.