Foros del Web » Programando para Internet » PHP »

Problema con paginación

Estas en el tema de Problema con paginación en el foro de PHP en Foros del Web. Hola, soy bastante nueva con PHP así que espero poder explicarme bien. Tengo una base de datos de pisos para alquilar, vender, traspasar... y quiero ...
  #1 (permalink)  
Antiguo 30/05/2011, 10:56
Avatar de Maline83  
Fecha de Ingreso: mayo-2011
Mensajes: 14
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Problema con paginación

Hola, soy bastante nueva con PHP así que espero poder explicarme bien.
Tengo una base de datos de pisos para alquilar, vender, traspasar... y quiero realizar una búsqueda a través de un SELECT para buscar según ese criterio.

La búsqueda la hace bien, y el código de paginación funciona en otros scrips que tengo, pero al pasar a otra página (en la paginación) que no sea la primera, me sale "No has enviado desde formulario" (que es el ELSE del primer IF), supongo que porque con el isset recibe que se le ha dado a enviar, y en las siguientes páginas es que no...

//buscamos las que coincidan con criterio
if (isset($_POST["enviar"])) { //---------------------> CREO QUE EL ERROR ESTA AQUI

switch($_POST["operacion"]) {

//----------------- ALQUILAR ------------------
case "alquilar":
$consulta="select ref from propiedades where alquilar = '1' ";
$resultado=mysql_query($consulta) or die (mysql_error());
$total_registros = mysql_num_rows($resultado);
$total_paginas = ceil($total_registros / $registros);

$consulta="SELECT * FROM propiedades where alquilar = '1' limit $inicio, $registros";
$resultado=mysql_query($consulta) or die (mysql_error());

//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: " . $total_registros . "<br>";
echo "Se muestran páginas de " . $registros . " registros cada una<br>";
echo "Mostrando la página " . $pagina . " de " . $total_paginas . "<p>";

if(mysql_num_rows($resultado)!=0){ // Si hay resultados
while($datosg=mysql_fetch_array($resultado)){ // Los muestra
include('llamar/verdatospropied.php');
$referencia=$datosg["ref"];
include('llamar/veralquiler.php');
}
}else{ // Si no pues nada
echo "> No hoy coincidencias <";
}
mysql_free_result($resultado);
break;

//--------------- comprar ----------------
case "vender":
//lo mismo
break;
//demás opcionesdel switch
Default:
echo "Error";
}

//------------ PAGINACION ---------------------------
if($total_registros) {
echo "<center>";
if(($pagina - 1) > 0) {
echo "<a href='buscapropiedad.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}
for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i) {
echo "<b>".$pagina."</b> ";
} else {
echo "<a href='buscapropiedad.php?pagina=$i'>$i</a> ";
}
}
if(($pagina + 1)<=$total_paginas) {
echo " <a href='buscapropiedad.php?pagina=".($pagina+1)."'>S iguiente ></a>";
}
echo "</center>";
}
} else { echo "NO has enviado desde formulario"; } //QUE PASA AQUI?????

Espero haberme explicado medianamente bien, y que podais ayudarme. Un saludo a todos
  #2 (permalink)  
Antiguo 30/05/2011, 11:11
Avatar de Maline83  
Fecha de Ingreso: mayo-2011
Mensajes: 14
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema con paginación

Y si alguien puede decirme cómo mostrar bien el código, se lo agradecería mucho, que así es un jaleo :s
  #3 (permalink)  
Antiguo 30/05/2011, 11:56
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 13 años
Puntos: 46
Respuesta: Problema con paginación

Bueno no entendi muy bien tu duda pero respondere a lo que entendi
usas la funcion isset
http://www.php.net/manual/es/function.isset.php
isset — Determina si una variable está definida y no es NULL
entonces si tienes como condicional
if (isset($_POST["enviar"])) {
}
la primera vez que envias los datos de un formulario por metodos POST esta condicional se cumplira
pero que pasara cuando pase a la siguiente pagina?
entonces no funcionara y pasara al else, POR QUE?
porque simplemente ya no existe el POST enviar ya que no enviaste
la solucion seria cambiar la condicional por otra que si cumplan las siguientes paginas como
$pagina o algo asi
__________________
Agregadecer no cuesta nada O SI?
  #4 (permalink)  
Antiguo 30/05/2011, 12:06
Avatar de Ximenitaa  
Fecha de Ingreso: abril-2011
Ubicación: Mexico
Mensajes: 208
Antigüedad: 13 años
Puntos: 43
Respuesta: Problema con paginación

Hola !!!

Vi tu tema y en una exploracion del foro encontre esto y me acorde de ti, espero te sirva de algo.....a ver si se relaciona con algo que buscas

http://www.forosdelweb.com/f62/pagin...o-aqui-540241/

saludos !!!
__________________
❤(。◕‿◕)❤ . . . Ten un dia .... GeNiAl.... !!!! . . . ❤(◕‿◕。)❤

¿Que dia es hoy? . . . Hoy, hoy, es definitivamente un dia PERFECTO !!
  #5 (permalink)  
Antiguo 30/05/2011, 14:07
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Problema con paginación

Hola Maline claro que cuando das a la siguiente pagina te mandara siempre a Nohas enviado desde el formulario por una simple razón que no estas propagando las variables que envias del formulario hacia el paginado cambia esto:

Código PHP:
if($total_registros) {
echo 
"<center>";
if((
$pagina 1) > 0) {
echo 
"<a href='buscapropiedad.php?pagina=".($pagina-1)."'>< Anterior</a> ";
}
for (
$i=1$i<=$total_paginas$i++){
if (
$pagina == $i) {
echo 
"<b>".$pagina."</b> ";
} else {
echo 
"<a href='buscapropiedad.php?pagina=$i'>$i</a> ";
}
}
if((
$pagina 1)<=$total_paginas) {
echo 
" <a href='buscapropiedad.php?pagina=".($pagina+1)."'>S iguiente ></a>";
}
echo 
"</center>";


por esto:

Código PHP:
$enviar=$_REQUEST["enviar"];
$operacion=$_REQUEST["operacion"];

if(
$total_registros) {
echo 
"<center>";
if((
$pagina 1) > 0) {
echo 
"<a href='buscapropiedad.php?pagina=".($pagina-1)."&enviar=".($enviar)."&operacion=".($operacion)."'>< Anterior</a> ";
}
for (
$i=1$i<=$total_paginas$i++){
if (
$pagina == $i) {
echo 
"<b>".$pagina."</b> ";
} else {
echo 
"<a href='buscapropiedad.php?pagina=$i&enviar=".($enviar)."&operacion=".($operacion)."'>$i</a> ";
}
}
if((
$pagina 1)<=$total_paginas) {
echo 
" <a href='buscapropiedad.php?pagina=".($pagina+1)."&enviar=".($enviar)."&operacion=".($operacion)."'>S iguiente ></a>";
}
echo 
"</center>";

y tambien cambia el POST por el REQUEST:
Código PHP:
if (isset($_REQUEST["enviar"])) {


switch(
$_REQUEST["operacion"]) { 

de esta manera se propagara tus variables por el paginado.

Saludos.
  #6 (permalink)  
Antiguo 31/05/2011, 01:51
Avatar de Maline83  
Fecha de Ingreso: mayo-2011
Mensajes: 14
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema con paginación

Muchas gracias a todos, voy a ponerme con ello y os cuento que tal. Saludosssss
  #7 (permalink)  
Antiguo 31/05/2011, 02:13
Avatar de Maline83  
Fecha de Ingreso: mayo-2011
Mensajes: 14
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema con paginación

ginitofl lo del REQUEST funcionó, ya está arreglado. Muchas gracias de nuevo, a ti y a todos!!

Etiquetas: paginacion
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 18:27.