Foros del Web » Programando para Internet » PHP »

Problema con Paginator y Buscador

Estas en el tema de Problema con Paginator y Buscador en el foro de PHP en Foros del Web. Hola gente! Hice un buscador múltiple de 4 campos e implemente paginator, el único problema que tengo es que cuando se realiza la búsqueda, que ...
  #1 (permalink)  
Antiguo 06/04/2010, 15:24
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Problema con Paginator y Buscador

Hola gente!

Hice un buscador múltiple de 4 campos e implemente paginator, el único problema que tengo es que cuando se realiza la búsqueda, que la hace de forma correcta y pagina sin problemas es que cuando quiero ir a la página siguiente o elijo cualquier otra después de realizada la búsqueda me devuelve la totalidad de los registros.

Por ejemplo:

La tabla tiene un total de 500 registros y eso me genera un total de 20 páginas
Si busco por X ciudad me devuelve 100 registros y me genera 4 páginas, pero si hago click en la página 2 o 3 o 4 en lugar de respetar esa búsqueda me retorna los 500 registros iniciales.

No se que puedo estar haciendo mal, ojalá me puedan ayudar, les dejo el código por las dudas.

Mil gracias!!!

Código PHP:
if (($nombre== "") && ($apellido == "") && ($domicilio == "") && ($ciudad == "")) 
{
    
//cuando todos los campos estan vacios
    
$_pagi_sql "SELECT * FROM clientes ORDER BY apellido ASC";

else if ((
$nombre== "") && ($apellido== "") && ($domicilio== "") && ($ciudad == $_POST["ciudad"])) 
    {
        
//cuando todos los campos estan vacios excepto CIUDAD
        
$_pagi_sql "SELECT * FROM clientes WHERE ciudad LIKE '%$ciudad%' ORDER BY apellido ASC";
      } 
    else if ((
$nombre== "") && ($apellido== "") && ($domicilio== $_POST["domicilio"]) && ($ciudad == "" )) 
    {
        
//cuando todos los campos estan vacios excepto DOMICILIO
        
$_pagi_sql "SELECT * FROM clientes WHERE domicilio LIKE '%$domicilio%' ORDER BY apellido ASC";
    } 

....
....

/* sigue con todas las combinaciones posibles */

$_pagi_propagar = array("nombre, apellido, domicilio, ciudad");
$_pagi_result mysql_query($_pagi_sql$Link);
include(
"php/paginator.inc.php");

echo 
"<p class='resultado'><b>Resultado(s):</b> ".$_pagi_info."</p>"

while (
$Row mysql_fetch_array ($_pagi_result)) {
 
//traigo todos los datos del registro

echo "<p class='paginar'>".$_pagi_navegacion."</p>";


__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 06/04/2010, 15:38
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Problema con Paginator y Buscador

No tienes ningún limit en las sentencias sql, con él mostrarás solo los resultados que te interesan, y sería "TAMAÑO DE LA PÁGINA" * "NUMERO DE PAGINAS", "TAMAÑO DE LA PÁGINA"
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 06/04/2010, 15:51
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Problema con Paginator y Buscador

Gracias por responder me diste una idea, pero esos valores que decis los tengo que sacar del paginator?
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 07/04/2010, 10:41
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Problema con Paginator y Buscador

En el paginator (de jpinedo) dice que no debe usarse LIMIT con la variable $_pagi_sql que es donde se ponen las consultas.

Alguien me podrá ayudar a encontrar la solución? :(
__________________
Saludos!!!
Maru.-
  #5 (permalink)  
Antiguo 07/04/2010, 15:47
Avatar de Enishy  
Fecha de Ingreso: septiembre-2007
Mensajes: 121
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Problema con Paginator y Buscador

Hola yo tenia un problema similar haber checa mi post que hice a ver si te sirve

http://www.forosdelweb.com/f18/ayuda...pinedo-707241/
  #6 (permalink)  
Antiguo 07/04/2010, 16:56
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Problema con Paginator y Buscador

Gracias por tu respuesta Enishy! pero lo que veo es que el script que modificaron funciona para postgres y yo uso php y mysql :(

Hace varios días que estoy en la búsqueda de la solución, me llama la atención que no se haya usado tanto con buscadores, ya que no encontré demasiado al respecto.

Sigo en la espera de ayuda y con esperanzas aun...
__________________
Saludos!!!
Maru.-
  #7 (permalink)  
Antiguo 08/04/2010, 12:22
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Paginator y Buscador ya casi solucionado...

Creo haber encontrado al menos parte de la solución, buscando y buscando encontre este post que he tratado de aplicar a mi ejemplo pero hay una parte de la búsqueda que no hace y yo calculo que es un error mio.

Lo probé con otro buscador que hice (por las dudas) - les dejo el código por si a alguien le sirve y por si alguien me puede ayudar a descubrir que es lo que me falta.

Código HTML:
<form action="<?PHP $PHP_SELF ?>" method="post">
<table width="500" height="150" border="0" align="center" class="tblformprof" cellspacing="5" cellpadding="5">
  <tr>
    <td width="54" class="izq">Ciudad</td>
    <td width="197"><label>
      <input type="text" name="ciudad" id="ciudad" size="10">
    </label></td>
    <td width="59" class="izq">&nbsp;</td>
    <td width="157"><label></label></td>
  </tr>
  <tr>
    <td class="izq">Partido</td>
    <td><label>
      <input type="text" name="partido" id="partido" size="25">
    </label></td>
    <td class="izq">Departamento</td>
    <td><label>
      <input type="text" name="depto" id="depto" size="20">
    </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><label>
      <div align="center">
        <input class="boton" type="submit" name="button" id="button" value="Buscar">
        </div>
    </label></td>
    <td>&nbsp;</td>
    <td><label>
      <div align="left">
        <input class="boton"type="reset" name="button2" id="button2" value="Borrar" />
        </div>
    </label></td>
  </tr>
  
</table>
</form> 

Código PHP:
<?php
//defino variables para que las reconozca php son las que vienen del formulario y se escriben asi desde la V.5.0

require ("php/conectar_db.php");

session_start();

if (isset(
$_POST['ciudad'])) 
{
    if (
$_SESSION['buscarciudad'] != $_POST['ciudad'])
    
$_SESSION['buscarciudad'] = $_POST['ciudad']; 
}
if (isset(
$_POST['partido'])) 
{
    if (
$_SESSION['buscarpartido'] != $_POST['partido'])
    
$_SESSION['buscarpartido'] = $_POST['partido']; 
}
if (isset(
$_POST['depto'])) 
{
    if (
$_SESSION['buscardepto'] != $_POST['depto'])
    
$_SESSION['buscardepto'] = $_POST['depto']; 
}


if ((!empty(
$_SESSION['buscarciudad'])) || ($_SESSION['buscarpartido'] = "") || ($_SESSION['buscardepto'] = "")) 
{
    
//cuando todos los campos estan vacios excepto CIUDAD
    
$_pagi_sql "SELECT * FROM tb_ciudades WHERE ciuNombre LIKE '%".mysql_real_escape_string($_SESSION['buscarciudad'])."%'";
}
else if ((
$_SESSION['buscarciudad'] = "") || (!empty($_SESSION['buscarpartido'])) || ($_SESSION['buscardepto'] = ""))
{
    
//cuando todos los campos estan vacios excepto PARTIDO
    
$_pagi_sql "SELECT * FROM tb_ciudades WHERE ciuPartido LIKE '%".mysql_real_escape_string($_SESSION['buscarpartido'])."%'";
}          
else if ((
$_SESSION['buscarciudad'] = "") || ($_SESSION['buscarpartido'] = "") || (!empty($_SESSION['buscardepto']))) 
{
    
//cuando todos los campos estan vacios excepto DEPTO
    
$_pagi_sql "SELECT * FROM tb_ciudades WHERE ciuDepto LIKE '%".mysql_real_escape_string($_SESSION['buscardepto'])."%'";
}
else {
$_pagi_sql "SELECT * FROM tb_ciudades";

//hay que seguir haciendo las distintas combinaciones para el buscador...
}


$_pagi_cuantos 25;    


$_pagi_propagar = array("ciudad, partido, depto");
$_pagi_result mysql_query($_pagi_sql$Link);
include(
"php/paginator.inc.php");

echo 
"<p class='resultado'><b>Resultado(s):</b> ".$_pagi_info."</p>"

    echo 
"<table width='523' border='0' class='tblbuscarprof' align='center'>";
    echo 
"<tr>";
    echo 
"<td class='tdgris' width='60'>Ciudad</td>";
    echo 
"<td class='tdgris' width='60'>Partido</td>";
    echo 
"<td class='tdgris' width='70'>Departamento</td>";
    echo 
"</tr>";
    echo 
"</table>";
while (
$Row mysql_fetch_array ($_pagi_result)) {
    echo 
"<table width='523' border='0' align='center'>";    
    echo 
"<tr>";
    echo 
"<td class='tdnegra' width='60'>".$Row["ciuNombre"]."</td>";
    echo 
"<td class='tdnegra' width='60'>".$Row["ciuPartido"]."</td>";
    echo 
"<td class='tdnegra' width='70'>".$Row["ciuDepto"]."</td>";
    echo 
"</tr>";
    echo 
" <tr>";
    echo 
" <td colspan='3'><img src='images/linea.jpg' width='523' height='12' /></td>";
    echo 
" </tr>";    
    echo 
"</table>";
}
echo 
"<br>";
echo 
"<p class='paginar'>".$_pagi_navegacion."</p>";


//cierra la base
mysql_close ($Link);

?>
__________________
Saludos!!!
Maru.-

Última edición por Maru77; 08/04/2010 a las 12:46

Etiquetas: paginator, buscadores
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 16:45.