Foros del Web » Programando para Internet » PHP »

Problemas con Buscador y Paginator

Estas en el tema de Problemas con Buscador y Paginator en el foro de PHP en Foros del Web. Estimados: Envio este tema luego de haber investigado, leido y releido todo lo relacionado con mi problema en el foro. Encontre muchas cosas similares y ...
  #1 (permalink)  
Antiguo 08/11/2008, 07:59
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Busqueda Problemas con Buscador y Paginator

Estimados:
Envio este tema luego de haber investigado, leido y releido todo lo relacionado con mi problema en el foro. Encontre muchas cosas similares y he tratado de implementarlas pero no me funcionan.
Tengo un buscador por medio de un formulario. Este me lleva a una pagina que se llama librospag1.php
La siguiente tiene el codigo que les dejo a continuacion:
Código PHP:
  <?php
$conexion 
mysql_connect('localhost''???''???') or die (mysql_error());
mysql_select_db('notifi',$conexion) or die (mysql_error());

$_pagi_result mysql_query("SELECT * FROM jos_clubes WHERE nombre LIKE '%" $_POST['txtBusqueda'] . "%' or localidad LIKE '%" $_POST['txtBusqueda'] . "%' or direccion LIKE '%" $_POST['txtBusqueda'] . "%'");

//Paginator
$result mysql_query($_pagi_sql) or die (mysql_error());
$_pagi_cuantos 5;
include(
"paginator.inc.php");

include(
"tabla.php");
?>
Aclaro algunas cosas:
1. Dentro de tabla.php estan las barras en donde incluyo las barras de navegacion de paginas.
2. Si quito las 3 lineas debajo de //Paginator, el buscador me funciona bien aunque, ovbiamente, sin hacer la paginacion.

El error que me tira es:
"Query was empty"

Espero que puedan ayudarme con el problema... Saludos y gracias por anticipado.
  #2 (permalink)  
Antiguo 08/11/2008, 12:43
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con Buscador y Paginator

Cita:
Iniciado por la web de paginator
Incluir el Paginator. A partir de aquí, quedan disponibles las siguientes variables:
  1. $_pagi_result : Que contiene el id del resultado de la consulta para los registros de la página actual, listo para pasarlo por alguna función tipo mysql_fetch_array().
  2. $_pagi_navegacion : Que contiene la "barra de navegación" para poder acceder a las diferentes páginas.
  3. $_pagi_info : Cadena que contiene información sobre los registros de la página actual. Ejemplo: "desde el 16 hasta el 30 de un total de 123";
$_pagi_result es el recurso creado automáticamente con Paginator, para que puedas mostrar el contenido, etc.
Cita:
Iniciado por la web de paginator
Definir una sentencia sql (cadena) válida (para MySql) y almacenarla en la variable $_pagi_sql. Esta variable no debe contener la cláusula "LIMIT", pues será agregada automáticamente por el script. La definición de esta variable es OBLIGATORIA.
La variable $_pagi_sql debe incluir la consulta (OJO, sólo la consulta) para que el paginador proceda. Esta consulta no debe tener claúsulas LIMIT, ya que estas son agregadas automáticamente por el paginador
Código php:
Ver original
  1. $_pagi_sql = "SELECT * FROM jos_clubes WHERE nombre LIKE '%" . $_POST['txtBusqueda'] . "%' or localidad LIKE '%" . $_POST['txtBusqueda'] . "%' or direccion LIKE '%" . $_POST['txtBusqueda'] . "%'";

Saludos,
  #3 (permalink)  
Antiguo 08/11/2008, 14:14
Avatar de tilu  
Fecha de Ingreso: agosto-2002
Ubicación: u-l-d-m
Mensajes: 1.885
Antigüedad: 21 años, 7 meses
Puntos: 5
Respuesta: Problemas con Buscador y Paginator

Hola Chicos

me encuentro "casi" con el mismo problema, usando el mismo paginador de jpinedo (gran muchachón).

Bien digo "casi" ya que a mi sólo me muestra el primer registro recuperado

Les cuento, de tanto buscar me encontré con este paginador, intenté implementarlo a modo de prueba, por eso que practicamente no he tocado mucho, sólo el formato de salida de los resultados.

Si alguno de ustedes me puede echar una mano, indicándome como arreglarlo, le estaría muy agradecida

Esta es la parte que toqué:
Código PHP:
$query="select FOT_CODIGO from FDC_MATE_GRAL where TGR_CODIGO='".$BUSCARTERMINO."' ";
   
$result1 Select($query);
        
$cantidad = @count($result1);
        
printf ("registros encontrados: $cantidad <br/><br/>");
        foreach (
$result1 as $resultados1){
       

$_pagi_sql="select * from FDC_FOTOGRAFIA where FOT_CODIGO='".$resultados1[FOT_CODIGO]."'";
}

$_pagi_nav_num_enlaces 3;
$_pagi_mostrar_errores false;
$_pagi_conteo_alternativo true;
$_pagi_propagar = array("id","termino");
$_pagi_nav_anterior "&lt;";
$_pagi_nav_siguiente "&gt;";
include(
"paginator.inc.php");

$columna=1;
echo (
"<table width='740' border='1'><tr>");
while(
$row mysql_fetch_array($_pagi_result)){ 
  if (
$columna==4)
    {
    
$columna=1;
    echo(
"</tr><tr>");
    }
    else
    {
    
$columna++;
    }
  echo (
"<td> <img alt='Pagina Inicial' src='thumbnail/t".$row['FOT_ACCESO']."' border='0' /><br/>".$row['FOT_TITULO']."<br/>".$row['FOT_DIM_ALTO']."x".$row['FOT_DIM_ANCHO']." ".$row['FOT_DIM_MEDIDA']."</td>");
}
echo (
"</tr></table>");

echo
"<p> P&aacute;gina actual: ".$_pagi_navegacion."</p>"
__________________
"Casualidad es el juego favorito del destino", Tilu
  #4 (permalink)  
Antiguo 08/11/2008, 14:30
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con Buscador y Paginator

Hola tilu, cuando tengas una pregunta distinta a la original, aunque traten del mismo tema, es mejor que abras un tema nuevo. He reportado tu mensaje para que algún moderador lo mueva, si lo considera necesario.

El problema es que en cada foreach que haces al inicio de tu script reescribes la consulta SQL, lo que ocasiona que la consulta final tenga un criterio específico para un solo resultado. Puedes arreglarlo de varias maneras:

Código php:
Ver original
  1. $query="select FOT_CODIGO from FDC_MATE_GRAL where TGR_CODIGO='".$BUSCARTERMINO."' ";
  2.     $result1 = Select($query);
  3.     $cantidad = @count($result1);
  4.     printf ("registros encontrados: $cantidad <br/><br/>");
  5.     $query_where = array();
  6.     foreach ($result1 as $resultados1){
  7.         $query_where[] = "'".mysql_real_escape_string($resultados1['FOT_CODIGO'])."'";
  8.     }        
  9.  
  10. $_pagi_sql="select * from FDC_FOTOGRAFIA where FOT_CODIGO IN (".implode(',',$query_where).")";

Saludos,
  #5 (permalink)  
Antiguo 08/11/2008, 15:07
Avatar de tilu  
Fecha de Ingreso: agosto-2002
Ubicación: u-l-d-m
Mensajes: 1.885
Antigüedad: 21 años, 7 meses
Puntos: 5
Respuesta: Problemas con Buscador y Paginator

Muchas gracias okram, la verdad que el paginador realizaba muy bien su labor y tú tenías razón sin tenerla je je je

Te explico, efectivamente el resultado que yo trataba de paginar siempre era uno. Lo que yo debía paginar era el resultado de la consulta anterior y luego en el resultado de la paginación realizar la consulta para mostrar el detalle que quería.

Como es posible que no entiendas lo que digo, te dejo el dibujillo (en este caso el código) je je je

Código PHP:
$_pagi_sql="select FOT_CODIGO from FDC_MATE_GRAL where TGR_CODIGO='".$BUSCARTERMINO."' ";

$_pagi_nav_num_enlaces 3
$_pagi_mostrar_errores false
$_pagi_conteo_alternativo true
$_pagi_propagar = array("id","termino"); 
$_pagi_nav_anterior "&lt;"
$_pagi_nav_siguiente "&gt;"
include(
"paginator.inc.php"); 

$columna=1
echo (
"<table width='740' border='1'><tr>"); 
while(
$row mysql_fetch_array($_pagi_result)){ 
    
$query="select FOT_TITULO, FOT_ACCESO, FOT_DIM_ALTO, FOT_DIM_ANCHO, FOT_DIM_MEDIDA from FDC_FOTOGRAFIA where FOT_CODIGO='".$row['FOT_CODIGO']."' ";
    
$result2 Select($query);
    foreach (
$result2 as $resultados2){
           if (
$columna==4)
              {
              
$columna=1;
              echo(
"</tr><tr>");
              }
              else
              {
              
$columna++;
              }
           echo (
"<td> <img alt='Pagina Inicial' src='thumbnail/t".$resultados2['FOT_ACCESO']."' border='0' /><br/>".$resultados2['FOT_TITULO']."<br/>".$resultados2['FOT_DIM_ALTO']."x".$resultados2['FOT_DIM_ANCHO']." ".$resultados2['FOT_DIM_MEDIDA']."</td>");
        }
}
echo (
"</tr></table>");

echo
"<p> P&aacute;gina actual: ".$_pagi_navegacion."</p>"


Tu comentario me ayudó mucho, sola habría descubierto el error como en una semana
__________________
"Casualidad es el juego favorito del destino", Tilu
  #6 (permalink)  
Antiguo 08/11/2008, 18:34
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con Buscador y Paginator

okram:
Gracias por el aporte. De todos modos sigue apareciendo un error, aunque ahora es distinto. El error que marca es:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #3' at line 1
Recuerdo, ya que este problema lo tengo desde hace tiempo y lo retome ahora para ver si lo solucionaba, que en el SELECT de la busqueda que me corregiste, yo le habia cambiado el $_pagi_sql por el $_pagi_result y con eso habia logrado quitar el error aunque no podia paginar.
Incluso probe con muchas otras variantes y no he podido dar en la tecla...
Espero ideas... Gracias.
  #7 (permalink)  
Antiguo 08/11/2008, 19:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con Buscador y Paginator

$_pagi_sql debe contener sólo la coinsulta textual. Ese error aparece porque allí "alojas" un recurso y no una cadena de texto. No se trataba sólo de cambiar $_pagi_result por $_pagi_sql, sino además de quitar mysql_query(). MIra el ejemplo que te di en el mensaje anterior.

Si hiciste eso y aún así te muestra el error, public el código tal y como lo tienes ahora.

Saludos,
  #8 (permalink)  
Antiguo 08/11/2008, 20:06
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con Buscador y Paginator

okram: gracias de nuevo.
Hice el cambio como dijiste, pero me vuelve al error Query was empty.
El codigo ahora es el mismo que publique, pero con la correccion que me indicaste. Te publico el codigo del archivo tabla.php, ya que podria haber algo mal ahi.

tabla.php
Código PHP:
<body>
</p><table width="600" border="0" align="center" cellpadding="00" cellspacing="0">
    <tr>
      <td height="25" background="../logos/barra5.gif"><div align="center" class="Estilo12">
          <?php
echo"<p>".$_pagi_navegacion."</p>";
?>
  </div></td></tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
</table>
    <?php
while($registro mysql_fetch_array($_pagi_result)){
?><table width="600"  border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="90" height="80" rowspan="2"><div align="center" class="Estilo15"><img src="..<?php echo $registro['escudo']; ?>" border="0" /></a></div></td>
    <td width="510" height="26" valign="middle" background="../logos/barra4.gif"><span class="Estilo18 Estilo1"><?php echo $registro['iniciales']; ?> <?php echo $registro['nombre']; ?></span></td>
  </tr>
  <tr>
    <td width="510" height="54" valign="middle" bgcolor="#99FFFF"><p class="Estilo14 Estilo16"><span class="autor"><?php echo $registro['direccion']; ?> - <?php echo $registro['cp']; ?> - <?php echo $registro['localidad']; ?></span><br />
    <span class="autor Estilo14 Estilo16"><?php echo $registro['fundacion']; ?></span></p></td>
  </tr>
  
  
  <tr>
    <td height="16" colspan="2">&nbsp;</td>
  </tr>
  
  <?php
}
mysql_close($conexion);
?>
</table>
<table width="600" border="0" align="center" cellpadding="00" cellspacing="0">
  <tr>
    <td height="25" background="../logos/barra5.gif"><div align="center" class="Estilo12">
      <?php
echo"<p>".$_pagi_navegacion."</p>";
?>
    </div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
  #9 (permalink)  
Antiguo 08/11/2008, 21:29
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problemas con Buscador y Paginator

Borra esta línea

$result = mysql_query($_pagi_sql) or die (mysql_error());

e insisto, pon el pedazo de código en el que incluyes el paginador, el problema es que estás configurando mal algo y no podemos andar de adivinos.

Saludos,
  #10 (permalink)  
Antiguo 09/11/2008, 06:12
Avatar de ealaequis  
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
okram:
Aprecio mucho tu paciencia (aunque veo que ya estaba al borde de quebrarla, jejeje). Es increible pero borre esa linea y FUNCIONO!!!
Hacia mucho que venia con este problema y no podia solucionarlo, asi que te agradezco enormemente como asi tambien a toda esta grandiosa comunidad que tanta comprension y paciencia tiene con quienes nos estamos iniciando en esto... que te solucionen los problemas demuestra la capacidad e inteligencia que hay aqui y el hecho de que lo hagan de la forma en que marque antes (y no de manera soberbia como sucede en otros lugares) habla de la calidad de gente que la compone. Mil gracias.

Detalle: ahora, luego de hallar la solucion, me surgió otro problema. De todas formas lo he visto en otro post cuando estuve investigando y tratare de solucionarlo mediante esas indicaciones. Si se me vuelven a "quemar los papeles" insistire con el pedido de ayuda.

Bueno gente. Acabo de investigar por el detalle que habia surgido y lo he podido solucionar apelando a una respuesta de otro post.
Agradezco a todos, en especial a okram, y hasta la proxima.

Última edición por GatorV; 09/11/2008 a las 11:25
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 23:04.