Foros del Web » Programando para Internet » PHP »

Urgente! Ayuda Para Paginar Script, Por Favor!

Estas en el tema de Urgente! Ayuda Para Paginar Script, Por Favor! en el foro de PHP en Foros del Web. Por favor amigos, alguien que me ayude a paginar este script ... ya he intentado muchas formas incluso con el famoso y buen paginator pero ...
  #1 (permalink)  
Antiguo 16/03/2004, 01:31
 
Fecha de Ingreso: febrero-2004
Ubicación: Brasil
Mensajes: 39
Antigüedad: 13 años, 9 meses
Puntos: 0
Exclamación Urgente! Ayuda Para Paginar Script, Por Favor!

Por favor amigos, alguien que me ayude a paginar este script ... ya he intentado muchas formas incluso con el famoso y buen paginator pero sólo funciona parcialmente... Gracias!
Código:
<?php
include("config.php");
if($enviar) {
$resp = mysql_query("select * from usuarios where
".(($_POST[sexo] != "") ? "sexo='$_POST[sexo]'" : "")."
".(($_POST[preferencia] != "") ? "AND preferencia='$_POST[preferencia]'" : "")."
".(($_POST[edad] != "") ? "AND edad='$_POST[edad]'" : "")."
".(($_POST[barrio] != "") ? "AND barrio='$_POST[barrio]'" : "")."
".(($_POST[ciudad] != "") ? "AND ciudad='$_POST[ciudad]'" : "")."
".(($_POST[estado] != "") ? "AND estado='$_POST[estado]'" : "")."
".(($_POST[pais] != "") ? "AND pais='$_POST[pais]'" : "")."
".(($_POST[altura] != "") ? "AND altura='$_POST[altura]'" : "")."
".(($_POST[peso] != "") ? "AND peso='$_POST[peso]'" : "")."
".(($_POST[piel] != "") ? "AND piel='$_POST[piel]'" : "")."
".(($_POST[ojos] != "") ? "AND ojos='$_POST[ojos]'" : "")."
".(($_POST[cabellos] != "") ? "AND cabellos='$_POST[cabellos]'" : "")."
".(($_POST[estadocivil] != "") ? "AND estadocivil='$_POST[estadocivil]'" : "")."
".(($_POST[bebe] != "") ? "AND bebe='$_POST[bebe]'" : "")."
".(($_POST[fuma] != "") ? "AND fuma='$_POST[fuma]'" : "")."
".(($_POST[religion] != "") ? "AND religion='$_POST[religion]'" : "")."
".(($_POST[educacion] != "") ? "AND educacion='$_POST[educacion]'" : "")."
".(($_POST[idioma] != "") ? "AND idioma='$_POST[idioma]'" : "")."
".(($_POST[profesion] != "") ? "AND profesion='$_POST[profesion]'" : "")."
".(($_POST[signo] != "") ? "AND signo='$_POST[signo]'" : "")."
") ;
$datos = mysql_num_rows($resp) == "0" ;
if($datos) {
echo "Não há resultados";
} else {
echo "Resultados da procura:<br><br>";
while($sql = mysql_fetch_array($resp)) {//imprimimos las respuestas
echo "<center><table border = '0' width='90%' cellspacing='5' class='form'> \n
<td width='50%' valign='top'>
<b>Apelido:</b>".$sql["nick"]."
<br>
<b>Sexo:</b>".$sql["sexo"]."
<br>
<b>Preferência sexual:</b>".$sql["preferencia"]."
<br>
<b>Idade:</b>".$sql["edad"]."
<br>
<b>Cidade:</b>".$sql["ciudad"]."
<br>
<b>Estado:</b>".$sql["estado"]."
<br>
<b>Pais:</b>".$sql["pais"]."
<br>
<b>Estatura:</b>".$sql["altura"]."
<br>
<b>Peso:</b>".$sql["peso"]."
<br>
<b>Signo:</b>".$sql["signo"]."
</td>
<td width='50%' valign='top'>
<b>Pele:</b>".$sql["piel"]."
<br>
<b>Olhos:</b>".$sql["ojos"]."
<br>
<b>Cabelos:</b>".$sql["cabellos"]."
<b><br>
Estado Civil:</b>".$sql["estadocivil"]."
<br>
<b>Bebida alcoólica:</b>".$sql["bebe"]."
<br>
<b>Fumo:</b>".$sql["fuma"]."
<br>
<b>Religião:</b>".$sql["religion"]."
<br>
<b>Educação:</b>".$sql["educacion"]."
<br>
<b>Idioma:</b>".$sql["idioma1"]."
<br>
<b>Profissão:</b>".$sql["profesion"]."
</td>
</tr>
 \n
 </table><br> \n";}


echo "<b>Não há mais resultados</b>";
}
}
?>
Está en portugués porque vivo en Brasil... y estoy en este Foro porque me dijeron que además de ser muy bueno la gente ayuda a los que no sabemos mucho... :) [email protected]
__________________
LuisTV
[email protected]
  #2 (permalink)  
Antiguo 16/03/2004, 01:43
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

El paginator de jpinedo solo propaga las variables que le llegan por GET (URL). Y tu script recibe las variables por POST. Asi que una solucion seria cambiar tu formulario para usar el metodo GET.

Otra solucion seria que tu propagases a mano los parametros que recibes por POST. Tambien tendrias que leer los parametros de POST o GET, no solo de POST. Seria algo como:
Código PHP:
$sexo=(isset($_POST['sexo']))?$_POST['sexo']:$_GET['sexo']; // si existe sexo en POST, coges el valor del POST, sino el del GET
// luego en la consulta usas $sexo
// lo mismo con el resto de los parametros


// y luego en el codigo que genera el link de paginacion
echo '<a href="pagina.php?pagina='.$i.'&sexo='.$sexo;
// tambien añades el resto de parametros 
Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 16/03/2004, 01:50
 
Fecha de Ingreso: febrero-2004
Ubicación: Brasil
Mensajes: 39
Antigüedad: 13 años, 9 meses
Puntos: 0
Gracias por responder...

Muchas gracias por la rápida respuesta.
No me había percatado de ese importante detalle... voy a probar tus sugerencias y después nos comunicamos nuevamente... Muchas Gracias!
__________________
LuisTV
[email protected]
  #4 (permalink)  
Antiguo 16/03/2004, 21:09
 
Fecha de Ingreso: febrero-2004
Ubicación: Brasil
Mensajes: 39
Antigüedad: 13 años, 9 meses
Puntos: 0
[B]NO CONSEGUÍ[/B]

Por favor, otra forma de paginar el script sin el paginator...
En verdad si consigo paginarlo, el problema está en los links de las siguientes páginas...
Por favor, ayúdenme... GRACIAS!
__________________
LuisTV
[email protected]
  #5 (permalink)  
Antiguo 16/03/2004, 22:16
 
Fecha de Ingreso: marzo-2004
Ubicación: Zaragoza
Mensajes: 28
Antigüedad: 13 años, 9 meses
Puntos: 0
Re: [B]NO CONSEGUÍ[/B]

Cita:
Mensaje Original por luistv
En verdad si consigo paginarlo, el problema está en los links de las siguientes páginas...
¿Cuál es el problema?

Postea el código del enlace y el enlace que te devuelve el navegador.


P.D. No es necesario que abras otro tema con la misma pregunta


Saludos...vichu
__________________
Si su paciente se empieza a sentir mejor sin causa aparente, no descarte la curación.
(Ley de Murphy para médicos)
  #6 (permalink)  
Antiguo 18/03/2004, 01:12
 
Fecha de Ingreso: febrero-2004
Ubicación: Brasil
Mensajes: 39
Antigüedad: 13 años, 9 meses
Puntos: 0
Exclamación detalles...

Hola Vichu, gracias por responder.
En apariencia todo funciona bien. Dependiendo de la cantidad de resultados me devuelve un total de páginas correctos, etc.
Pero sólo funciona con la primera página. Cuando doy click en las siguientes páginas aparecen en blanco...
Josemi me hizo ver que el Paginator trabaja con GET y yo estoy usando POST. Intenté cambiar todo para GET o usar lo que Josemi me sugirió pero no conseguí...
Lo único que pido es que alguien me ayude a paginar el script que presenté... puede ser CUALQUIER FORMA DE PAGINACIÒN... inclusive me serviría una que diga siguientes resultados sin definir la cantidad de páginas... Intenté con otro sistema de paginación pero me daba el resultado correcto y podía navegar en las siguientes páginas, pero cuando llegaba a la última me daba el resto de los resultados que no había solicitado (ejemplo: pedía todas las mujeres de una DB y cuando llegaba a la última página de mujeres comenzaban a aparacere los hombres0... lo único que necesito es que no me devuelva todos los resultados en una sola página porque estoy hablando de más de 300 resultados...
Muchas gracias por cualquier ayuda!
Y por favor disculpen haber postado 2 veces, en verdad me perdí en el forum...
__________________
LuisTV
[email protected]
  #7 (permalink)  
Antiguo 20/03/2004, 23:51
 
Fecha de Ingreso: febrero-2004
Ubicación: Brasil
Mensajes: 39
Antigüedad: 13 años, 9 meses
Puntos: 0
cual es mi error?

por favor ayúdenme... dónde está mi error?
Código PHP:
<?
// Conectamos a la Base de Datos
include("config.php");
// Obtenemos la página actual, por el método que más nos guste
// Por defecto, la página se propaga por la variable $pagina
$pagina $HTTP_GET_VARS["pagina"];
// Incluimos la Clase Paginado
include("class.paginado.php");
$rs = new paginado($Conn);// instanciamos un objeto
$rs->pagina($pagina); // Le indicamos en que página estamos - 1 por defecto
$rs->porPagina(5);// Le decimos cuantos registros por página queremos - 20 por defecto
$rs->propagar("usuários"); // Le decimos las variables que queremos propagar en los links
if(!$rs->query("select * from usuarios where
"
.(($_POST[sexo] != "") ? "sexo='$_POST[sexo]'" "")."
"
.(($_POST[preferencia] != "") ? "AND preferencia='$_POST[preferencia]'" "")."
"
.(($_POST[edad] != "") ? "AND edad='$_POST[edad]'" "")."
"
.(($_POST[barrio] != "") ? "AND barrio='$_POST[barrio]'" "")."
"
.(($_POST[ciudad] != "") ? "AND ciudad='$_POST[ciudad]'" "")."
"
.(($_POST[estado] != "") ? "AND estado='$_POST[estado]'" "")."
"
.(($_POST[pais] != "") ? "AND pais='$_POST[pais]'" "")."
"
.(($_POST[altura] != "") ? "AND altura='$_POST[altura]'" "")."
"
.(($_POST[peso] != "") ? "AND peso='$_POST[peso]'" "")."
"
.(($_POST[piel] != "") ? "AND piel='$_POST[piel]'" "")."
"
.(($_POST[ojos] != "") ? "AND ojos='$_POST[ojos]'" "")."
"
.(($_POST[cabellos] != "") ? "AND cabellos='$_POST[cabellos]'" "")."
"
.(($_POST[estadocivil] != "") ? "AND estadocivil='$_POST[estadocivil]'" "")."
"
.(($_POST[bebe] != "") ? "AND bebe='$_POST[bebe]'" "")."
"
.(($_POST[fuma] != "") ? "AND fuma='$_POST[fuma]'" "")."
"
.(($_POST[religion] != "") ? "AND religion='$_POST[religion]'" "")."
"
.(($_POST[educacion] != "") ? "AND educacion='$_POST[educacion]'" "")."
"
.(($_POST[idioma] != "") ? "AND idioma='$_POST[idioma]'" "")."
"
.(($_POST[profesion] != "") ? "AND profesion='$_POST[profesion]'" "")."
"
.(($_POST[signo] != "") ? "AND signo='$_POST[signo]'" "")."")) // Y ejecutamos nuestra consulta.
{    die( $rs->error() ); // Si Query devolvió falso, hubo un error y lo mostramos.
}echo "Mostrando ".$rs->desde()." - ".$rs->hasta()." de un total de ".$rs->total()."<br>";
// Recorremos todos los resultados y los mostramos.
while($row $rs->obtenerArray()){
$sexonumero $row[sexo] ;
$sexotexto = array("Masculino","Feminino") ;
echo 
"<center><table border = '0' width='90%' cellspacing='5' class='form'> \n
<td width='50%' valign='top'>
<b>Apelido:</b>"
.$row["nick"]."
<br>
<b>Sexo:</b>"
.$sexotexto["$sexonumero"]."
<br>
<b>Preferência sexual:</b>"
.$row["preferencia"]."
<br>
<b>Idade:</b>"
.$row["edad"]."
<br>
<b>Cidade:</b>"
.$row["ciudad"]."
<br>
<b>Estado:</b>"
.$row["estado"]."
<br>
<b>Pais:</b>"
.$row["pais"]."
<br>
<b>Estatura:</b>"
.$row["altura"]."
<br>
<b>Peso:</b>"
.$row["peso"]."
<br>
<b>Signo:</b>"
.$row["signo"]."
</td>
<td width='50%' valign='top'>
<b>Pele:</b>"
.$row["piel"]."
<br>
<b>Olhos:</b>"
.$row["ojos"]."
<br>
<b>Cabelos:</b>"
.$row["cabellos"]."
<b><br>
Estado Civil:</b>"
.$row["estadocivil"]."
<br>
<b>Bebida alcoólica:</b>"
.$row["bebe"]."
<br>
<b>Fumo:</b>"
.$row["fuma"]."
<br>
<b>Religião:</b>"
.$row["religion"]."
<br>
<b>Educação:</b>"
.$row["educacion"]."
<br>
<b>Idioma:</b>"
.$row["idioma1"]."
<br>
<b>Profissão:</b>"
.$row["profesion"]."
</td>
</tr>
 \n
 </table><br> \n"
;}
echo 
"<b>Não há mais resultados</b>";
// Finalmente mostramos los medios para la navegación entre los resultados.
echo $rs->anterior()." - ".$rs->nroPaginas()." - ".$rs->siguiente();
?>
__________________
LuisTV
[email protected]
  #8 (permalink)  
Antiguo 21/03/2004, 06:05
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 7 meses
Puntos: 1
Lo que te ocurre, es que la primera pagina se abre por que tienes las variables en el Array POST, pero cuando le pasas a la
siguiente pagina estas variables han desaparecido, porque no se las vuelves a dar,

Tienes de ver un sistema que te guarde estasa variables que has entrado desde el form del buscador,

Puede ser en sesiones, dentro de un campo de una tabla etc,

quizas lo mas factible seria guardarlas en un session con serialize() luego cuando abras otra pagina con el paginador, pues llamas al array con un unserialize(), pasando tambien las variables $_GET que te envia el paginador

Saludos
  #9 (permalink)  
Antiguo 22/03/2004, 09:22
 
Fecha de Ingreso: febrero-2004
Ubicación: Brasil
Mensajes: 39
Antigüedad: 13 años, 9 meses
Puntos: 0
Jordi, muchas gracias por tu respuesta!
Tu explicación fue muy clara, pero mi nivel de PHP no es suficiente para ponerla en práctica... Inclusive el script que presenté fue hecho con la ayuda de unos amigos porque yo sólo conseguía hacer una búsqueda en un campo y justamente la cosa se complicó porque mi formulario tiene varios campos de búsqueda tipo <select> y para que funcione mis amigos me pasaron ese script... Antes de enviar el script a este foro intenté de varias formas y continúo estudiando pero aún no consigo resolverlo solo... Tú o alguien más, podrían darme un ejemplo?... con un ejemplo yo podría resolver el resto, ok?
Muchas gracias nuevamente!
__________________
LuisTV
[email protected]
  #10 (permalink)  
Antiguo 22/03/2004, 12:34
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 7 meses
Puntos: 1
bueno, mas o menos se haria asi:

en la pagina donde te salen los resultados pones
<?
session_start()

if($_SESSION['DAT0S']){
$_POST = unserialize($_SESSION['DAT0S']);
}

if($_POST){
$_SESSION['DAT0S'] = serialize($_POST);
}

luego pones tu paginador normalmente,

No lo he probado pero deberia funcionar

saludos
  #11 (permalink)  
Antiguo 03/04/2004, 21:26
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
¿Y la clase paginado?

luistv...
Te recuerdo que también existe la Clase Paginado que es un script mucho más completo, eficiente y potente que mi Paginator... en la pagina de la documentación hay un enlace... y en los comentarios se ha hablado bastante de este tema...

En realidad no quiero cambiar el script pq quiero que siga siendo básico... pero me estoy dando cuenta de que la progagación de variable es importantísima.

Bueno... si buscas en el foro encontrarás los enlaces al script y documentación de la Clase Paginado de webstudio... seguro que se acabarán tus problemas.

Saludos
  #12 (permalink)  
Antiguo 03/04/2004, 21:38
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
Acá el link a la clase de webstudio:
http://www.web-studio.com.ar/proyect....paginado.phps

Y su documentación está en:
http://www.web-studio.com.ar/proyect...umentacion.htm

Te aseguro que te servirá.

Saludos

Última edición por jpinedo; 18/05/2004 a las 23:49
  #13 (permalink)  
Antiguo 05/04/2004, 13:32
 
Fecha de Ingreso: febrero-2004
Ubicación: Brasil
Mensajes: 39
Antigüedad: 13 años, 9 meses
Puntos: 0
Debo insistir o desistir?

Estimado JPinedo, he intentado todas las recomendaciones pero no consigo solo.

Recibí tu respuesta a mi email y tampoco pude responderte por culpa de un virus...

Prácticamente he desisitido... a menos que alguien pueda explicarme de una forma más detallada...

Muchas gracias por todo!

Es triste tener que reconocer mis limitaciones en PHP, pero es la realidad... en verdad mi profesión es otra.

Un gran abrazo!
__________________
LuisTV
[email protected]
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:40.