Foros del Web » Programando para Internet » PHP »

Paginator - Resultados en consulta

Estas en el tema de Paginator - Resultados en consulta en el foro de PHP en Foros del Web. Saludos Amigos, tengo implementado un buscador y he definido un campo Keywords para las busquedas del tipo text, al cual le paso los valores desde ...
  #1 (permalink)  
Antiguo 29/03/2006, 20:21
 
Fecha de Ingreso: noviembre-2004
Mensajes: 159
Antigüedad: 13 años, 1 mes
Puntos: 0
Paginator - Resultados en consulta

Saludos Amigos, tengo implementado un buscador y he definido un campo Keywords para las busquedas del tipo text, al cual le paso los valores desde un formulario, por el metodo Post, el detalle es el siguiente


1.- Cuando Yo defino la Variable $frase, es decir cuando

$_pagi_sql = "SELECT * FROM cliente where keywords like 'palabra a buscar' and type=1 ";

Tiene un valor definido todo funciona bien me muestra los resultados que contengan esa frase a buscar. Y correctamente pagina las paginas solicitadas
en mi caso son 2 paginas de 10 cada uno


2.- Cuando Paso la variable que en mi caso se llama search y la recibo como $frase, la recibe la sentencia sql es decir quedaria asi

$_pagi_sql = "SELECT * FROM cliente where keywords like '$frase' and type=1 ";

y normalmente deberia mostrarme solo los registros coincidentes con $frase. (en mi caso 20 y deben ser 2 paginas.) Pero no es así yo le hago click en la siguiente hoja y me empieza a paginar todos los registros de la BD

Alguien me puede decir que esta pasando?

He separado mi codigo en 2 partes ya que si hay resultados en la consulta mostrara un resultado y en caso no hayga resultados mostrara una pagina de no resultados


Inicio del codigo

Código PHP:

<?php 

$frase 
=addslashes($_POST["search"]);

echo 
$frase;

?>

<?php


$con 
mysql_connect("localhost","aaaa","ccc") or die (mysql_error());

mysql_select_db("casita",$con) or die (mysql_error());

$_pagi_sql "SELECT * FROM cliente where keywords like '%$frase%' and type=1 ";



$_pagi_cuantos 10;

$_pagi_nav_num_enlaces 4;

$_pagi_mostrar_errores false;

$_pagi_conteo_alternativo true;


$_pagi_propagar = array("$frase");


$_pagi_nav_estilo "paginacion";


$_pagi_nav_anterior "&lt;";


$_pagi_nav_siguiente "&gt;";

include(
"paginator.inc.php");


// aqui valida si hay resultados o no

if ($_pagi_result  && mysql_num_rows($_pagi_result )>0)
El contenido Mostrado en caso de haber Resultados

Código PHP:

    {


                      ?>
                       <script language="javascript" type="text/javascript">



                       function vacio(q) {
                       for ( i = 0; i < q.length; i++ ) {
                       if ( q.charAt(i) != " " ) {
                       return true
                       }
                       }
                       return false
                       }


                      function valida(F) {
        
                   if( vacio(F.search.value) == false ) {
                 alert("Introduzca una palabra a buscar.")
                  return false
                  } else {
                
               
                 return true
                 }
        
                 }


                </script>

               <link href="fonts.css" rel="stylesheet" type="text/css">

 
             <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
             <TBODY>
            <TR>
            <TD width="15%" vAlign=top>&nbsp;</TD>
            <TD width="1%">&nbsp;&nbsp;</TD>
           <TD vAlign=top width="84%">
            <div align="center"> </div>
            <div align="left">
          <form name="form1" method="post"          action="search.php"                     onSubmit="return valida(this);">
            <table width="304" height="76" border="0">
              <tr>
                <td width="240"><input name="search" type="text" id="search" size="40" maxlength="40"></td>
                <td width="54"><input type="submit" name="Submit" value="Buscar"> </td>
              </tr>
            </table>
          </form>
      </div></TD>
    </TR>
  </TBODY>
</TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#FF0000 border=0>
  <TBODY>
    <TR>
      <TD  bgColor=#FFCCCC>&nbsp;</TD>
      <TD align=right bgColor=#FFCCCC class="rosado">
      
      <? 
     
      
echo"Resultados ".$_pagi_info.""?>
      
      
      </TD>
   
    </TR>
   </TBODY>
    </TABLE>
   <table width="100%"  border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td width="76%">&nbsp;</td>
    <td rowspan="2" valign="top">&nbsp;</td>
    </tr>
  <tr>
    <td valign="top"><table width="77%" border="0" align="left" cellpadding="0" cellspacing="0">
      
      
      <?php 
      
      
      
do { ?>
      
      <tr valign="top">
        <td class="forTableBgRight"> <a href= "<?php echo $row['website']; ?>" class="Enlaces"><?php echo $row['title']; ?> </a></td>
      </tr>
      <tr valign="top">
        <td class="estilitos"><?php echo $row['comment']; ?></td>
      </tr>
      <tr valign="top">
        <td width="579" height="34" class="verde"><font color="#009900"><?php echo $row['website']; ?></font></td>
      </tr>
      <?php } while($row mysql_fetch_array($_pagi_result)); ?>
    </table>      
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p></td>
  </tr>
</table>
<table width="100%"  border="0">
  <tr>
    <td><? 

echo"<center>".$_pagi_navegacion."</center>"?></td>
  </tr>
</table>
<p>&nbsp;</p>


<?php
                
        

        
}
El Contenido Mostrado en caso de no haber Resultados en la consulta


Código PHP:


                         
else 
        
     
     
     
            {
                
                echo 
'<br><br><br><center><img  src="images/logo.gif"> ' ;
                echo 
"<br><br><center><b>Lo siento su Busqueda no tiene Resultados";
                echo 
'<br><br><br><br><br><a href="javascript:history.back()"> <img src="images/regresar.jpg" border="0"> </a>' ;
            }

?> 
Espero alguien me oriente.

Gracias

A. Acosta.
  #2 (permalink)  
Antiguo 29/03/2006, 21:52
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
Hola:

El problema es que estás propagando mal la variable:
Código PHP:
<?
$_pagi_propagar 
= array("$frase");

// debería ser
$_pagi_propagar = array('frase'); // sin el signo $
También, te recuerdo que al propagar, Paginator lo hace por el método GET, así que esa primera línea sólo servirá para cuando provienes del form (página1). Lo ideal es que utilices el array $_REQUEST en lugar de $_POST.
Código PHP:
<?
$frase 
addslashes($_POST["search"]);
// Cámbialo por
$frase addslashes($_REQUEST["search"]);
Listo... ahora debería funcionar correctamente.

Saludos
  #3 (permalink)  
Antiguo 30/03/2006, 09:21
 
Fecha de Ingreso: noviembre-2004
Mensajes: 159
Antigüedad: 13 años, 1 mes
Puntos: 0
Correcto Jpinedo, gracias por tu respuesta.

Tenias Razón no me di cuenta de esa propagación de la variable

$_pagi_propagar = array('frase');

Y cambie el array $_POST por $_REQUEST

en mi caso son 2 paginas de 10 resultados por página.

correcto me salen las 2 paginas con su pie de página

< 1 2 >

el detalle es cuando le hago click a la pág 2, aparece el Nº 3 y luego me da opción a seguir viendo más registros (todos los de la BD)

< 1 2 3 4 >

Me he dado cuenta que en el 3 enlace ya no se esta propagando el array

$_pagi_propagar = array('frase');

lo note en la url (esto sale)

search.php?frase=&_pagi_pg=3

Y se pierde el valor del array 'frase'

-----------------------------------------------

Que estoy haciendo mal?

Salu2

A. Acosta
  #4 (permalink)  
Antiguo 31/03/2006, 00:03
 
Fecha de Ingreso: noviembre-2004
Mensajes: 159
Antigüedad: 13 años, 1 mes
Puntos: 0
Exclamación

Nuevamente Pregunto si es que alguien me puede decir que esta pasando? gracias de Antemano
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 17:42.