Foros del Web » Programando para Internet » PHP »

Paginator no propaga variables...cómo se soluciona?

Estas en el tema de Paginator no propaga variables...cómo se soluciona? en el foro de PHP en Foros del Web. Hola amigos: He implementado el paginator a mi sistema de busqueda. Les cuento que funciona bien pero hay un problema: Cuando los resultados de la ...
  #1 (permalink)  
Antiguo 06/05/2007, 17:25
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Paginator no propaga variables...cómo se soluciona?

Hola amigos:
He implementado el paginator a mi sistema de busqueda. Les cuento que funciona bien pero hay un problema:
Cuando los resultados de la búsqueda son 100 registros, se muestra 10 páginas de 10. En la primera página se visualiza los registros pero, cuando paso a la página 2 no sale nada, y no sale error.
Supongo que el problema es en la propagación de la variables a buscar....
Alguien me puede ayudar...

Cuál puede ser la solución?

Gracias por su tiempo.

Nano
  #2 (permalink)  
Antiguo 06/05/2007, 23:57
Avatar de tozanni  
Fecha de Ingreso: mayo-2007
Ubicación: Seattle, WA
Mensajes: 62
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Estas usando un componente o hiciste tu propio paginador? Tu componente (si es un 3rd-party) debe tener un metodo append o bind, con el cual puedas indicar el numero de pagina que deseas cargar en las paginas 2 en adelante.

Si tu lo hiciste tal vez mas bien tengas un problema de register_globals. Creo que necesitamos mas informacion para ayudarte mejor.
  #3 (permalink)  
Antiguo 07/05/2007, 07:23
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: Paginator no propaga variables...cómo se soluciona?

Hola Hna_no... como estas pasando tus variables?
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #4 (permalink)  
Antiguo 07/05/2007, 07:32
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Hola Amigos:
EL paginator de JPinedo lo usé de este link:
http://jpinedo.webcindario.com/scripts/paginator/
En el de JPinedo está este código:
Código PHP:
//Sentencia sql (sin limit)
[COLOR="Red"]$_pagi_sql "SELECT * FROM clientes WHERE sexo='m' ORDER BY edad";[/COLOR

El código anterior lo saqué de aquí:
http://jpinedo.webcindario.com/scrip..._avanzado.html

En mi página buscar.php está este código:
Código PHP:
$busqueda=$busqueda;//Esta cariable viene de un formulario de otra página
$_pagi_sql="SELECT id,subcategory, MATCH(subcategory, products) AGAINST('$busqueda') FROM rugs_carpets WHERE MATCH(subcategory,products) AGAINST('$busqueda')"
He implementado el paginator a mi página buscar.php tal como muestra el siguiente ejemplo:

http://jpinedo.webcindario.com/scrip..._avanzado.html

Les cuento que funciona bien pero hay un problema:
Cuando los resultados de la búsqueda son 100 registros, se muestra 10 páginas de 10. En la primera página se visualiza los registros pero, cuando paso a la página 2 no sale nada, y no sale error.
Supongo que el problema es en la propagación de la variables a buscar....
Alguien me puede ayudar...

Cuál puede ser la solución?

Gracias por su tiempo.

Nano
  #5 (permalink)  
Antiguo 07/05/2007, 07:44
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Amigos:
Hola Cirujano, en la pa´gina donde digito el texto a buscar está este código:

Código HTML:
<form id="form1" name="form1" method="post" action="buscar.php?<?php echo SID ?>">
<label>
<input name="busqueda" type="text" id="search" size="15">
</label>
<label>
<input type="submit" name="Submit" value="Search">
</label>
</form> 
  #6 (permalink)  
Antiguo 07/05/2007, 23:09
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Amigos:
Alguna ayuda por favor..

Nano
  #7 (permalink)  
Antiguo 08/05/2007, 07:40
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Hola amigos:
Sigo buscando y nada...aguna ayudapor favor...
Saludos
  #8 (permalink)  
Antiguo 08/05/2007, 07:45
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Paginator no propaga variables...cómo se soluciona?

hola, pasa todo el codigo de buscar.php , yo tengo un sistema de paginado que lo encontre por ahi y haber si te ayudo a adaptarlo.
  #9 (permalink)  
Antiguo 08/05/2007, 16:22
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Hola Amigos:
EL paginator de JPinedo lo usé de este link:
http://jpinedo.webcindario.com/scripts/paginator/
En el de JPinedo está este código:
Código PHP:
//Sentencia sql (sin limit)
[COLOR="Red"]$_pagi_sql "SELECT * FROM clientes WHERE sexo='m' ORDER BY edad";[/COLOR

El código anterior lo saqué de aquí:
http://jpinedo.webcindario.com/scrip..._avanzado.html

En mi página buscar.php está este código:
Código PHP:
$busqueda=$busqueda;//Esta cariable viene de un formulario de otra página
$_pagi_sql="SELECT id,subcategory, MATCH(subcategory, products) AGAINST('$busqueda') FROM rugs_carpets WHERE MATCH(subcategory,products) AGAINST('$busqueda')"
He implementado el paginator a mi página buscar.php tal como muestra el siguiente ejemplo:

http://jpinedo.webcindario.com/scrip..._avanzado.html

Les cuento que funciona bien pero hay un problema:
Cuando los resultados de la búsqueda son 100 registros, se muestra 10 páginas de 10. En la primera página se visualiza los registros pero, cuando paso a la página 2 no sale nada, y no sale error.
Supongo que el problema es en la propagación de la variables a buscar....
Alguien me puede ayudar...

Cuál puede ser la solución?

Gracias por su tiempo.

Nano
  #10 (permalink)  
Antiguo 09/05/2007, 03:01
Avatar de tozanni  
Fecha de Ingreso: mayo-2007
Ubicación: Seattle, WA
Mensajes: 62
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Se me hace que hay un error en esta linea:

Código PHP:
buscar.php?<?php echo SID ?>
En este momento pienso en 2 posibilidades:

a) Te falta poner el nombre del parametro sid=$SID, o sessid=$SID. No estoy seguro como se llame, necesitas confirmar en la referencia.

b) Te falta poner session_start()
  #11 (permalink)  
Antiguo 09/05/2007, 09:26
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Hola amigos:
Ayuda profa...

Saludos.
  #12 (permalink)  
Antiguo 09/05/2007, 09:38
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: Paginator no propaga variables...cómo se soluciona?

estas pasando la URL y te incluye el &_pagi_pg=2 o ?_pagi_pg=2
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #13 (permalink)  
Antiguo 09/05/2007, 23:31
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Hola Cirujano:
al pasar la url se pasa el siguietne código:
&_pagi_pg=2

espero que con eso encuentres la solucion..

Gracias...

nano
  #14 (permalink)  
Antiguo 10/05/2007, 07:36
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Paginator no propaga variables...cómo se soluciona?

hola cuando te dije que pasaras el codigo de buscar.php me referia a todas las lineas pero bueno tengo otra alternativa, prueba haber si te funciona.

forma.html
Código HTML:
<form method="get" action="resultar.php">

        <input type="text" name="busqueda" size="30">
		</form> 
resultar.php
Código PHP:


<?php
$servidor  
'localhost';         
$usuario   'root';              
$clave     'calave';             
$base      'tu_base';  

$connect = @mysql_connect("$servidor""$usuario""$clave");
    if (!
$connect) {
      echo( 
"<p>No se pudo conectar .</p>".mysql_errno().": ".mysql_error()."" );
      exit();
    }

    
// Seleccinar base de datos
    
if (! @mysql_select_db("$base") ) {
      echo( 
"<p>No se pudo encontrar la base de datos.</p> ".mysql_errno().": ".mysql_error()."" );
      exit();
    }
    
    include 
'paginar.php';
$db = new buildNav;
$db->offset 'offset';
$db->number_type 'number'// (or 'alpha');
$db->limit 30;


  
// Get the search variable from URL
  
$var = @$_GET['q'] ;
  
$trimmed trim($var); //trim whitespace from the stored variable


// check for an empty string and display a message.
if ($trimmed == "")
  {
  echo 
"<p class='bresult'>Por favor insertar una palabra <a href='javascript:history.back(1);'><font color='orange'>Regresar</font></a>
...</p><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
;
  exit;
  }

// check for a search parameter
if (!isset($var))
  {
  echo 
"<p class='informacion'>Parece que no se pudo encontrar el parametro de su busqueda!</p>";
  exit;
  }



<?
php

$db
->execute("SELECT id,subcategory, MATCH(subcategory, products) AGAINST('$busqueda') FROM rugs_carpets WHERE MATCH(subcategory,products) AGAINST('$busqueda')");
 
?>

 <center>
   <table  border="0" width="600">

  <tr>
  <td colspan="6" bgcolor="#FFFFFF" align="left"><a href="membres.php">Inicio</a> -

  Usted busco por  <font color="#CC0000"><b><?=$trimmed?></b></font></td>
 </tr>

 <tr>
  <td class="titre" align="center">id</td>
  <td class="titre" align="center">subcategory</td>

 
  </tr>
<?
     
     
     $nb 
mysql_num_rows($db->sql_result);

    if(
$nb 0)
    
        {
           while(
$row mysql_fetch_array($db->sql_result))
 
 {
    
$id$row["id"];
    
$subcategory $row["subcategory"];
    
    
?>
  <tr>
<td><?=$id?></td><td> <?=$subcategory?></td></tr>
  <?  
   
}
} else  echo 
"<tr><td colspan=8>No hay precarias</td></tr>";
?>
</table>
<table width="600" class="texte" bgcolor="#FFFFFF" cellpadding="0" cellspacing="1" border="0">
            <tr><td align="left">

<?
   $pages 
$db->show_num_pages('&laquo;',' <font color="black">&laquo; anterior </font>','&raquo;',' <font color="black">siguiente &raquo;</font>','|');   // show pages

   // OUTPUT THE NAV

   
print $pages?>
  
   </td><td align="right">
 <?   $info $db->show_info();

   print 
$info;
?> 
</td></tr><table></table>
  #15 (permalink)  
Antiguo 10/05/2007, 07:41
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Paginator no propaga variables...cómo se soluciona?

paginar.php

Código PHP:
<?

// -------------------------------------------------------------

// Builds Prev/Next Class File

//

// Credits :

//     Base on Original Code from

//     Previous/next v.01 by sephiroth([email protected])

//     http://www.sephiroth.it/download/detail.php?id=64

//

// General Comment Controls

// -- Comments in Brackets [] denotes a Function or Class

// -- Other Comments denote a General comment of a specific code

// Copyright (c) 2001 Lyon Lim - For File Protocol 1.0

//

// Last Updated : 16th February 2002

// --------------------------------------------------------------



// --------------------------------------------------------------

// USAGE

//

/*

<?

   include 'buildNav.php';

   $conn = mysql_connect('localhost','xxxxxx','xxxxxx');

   mysql_select_db('dbname');

   $db = new buildNav;

   $db->offset = 'offset';

   $db->number_type = 'number' (or 'alpha')

   $db->limit = 10;

   $db->execute("SELECT * from murphy ORDER by id ASC");

   while($myrow = mysql_fetch_array($db->sql_result))

   {

      print $myrow["your_column"];

   }

   // -------------------------------

   // CREATE A VAR WITH THE NAV LINKS

   // -------------------------------

   $pages = $db->show_num_pages('&laquo;','&laquo; prev','&raquo;','next &raquo;','|','class=moi');   // show pages

   // OUTPUT THE NAV

   print $pages;



   // -------------------------------

   // RESULTS INFORMATION

   // -------------------------------

   $info = $db->show_info();

   print $info;

?>

*/

// --------------------------------------------------------------



    
class buildNav // [Class : Controls all Functions for Prev/Next Nav Generation]

    
{

        var 
$limit$execute$query;

        function 
execute($query// [Function : mySQL Query Execution]

        
{

            !isset(
$_GET[$this->offset]) ? $GLOBALS[$this->offset] = $GLOBALS[$this->offset] = $_GET[$this->offset];

            
$this->sql_result mysql_query($query);

            
$this->total_result mysql_num_rows($this->sql_result);

            if(isset(
$this->limit))

            {

                
$query .= " LIMIT " $GLOBALS[$this->offset] . ", $this->limit";

                
$this->sql_result mysql_query($query);

                
$this->num_pages ceil($this->total_result/$this->limit);

            }

        }



        function 
show_num_pages($frew ''$rew ''$ffwd ''$fwd ''$separator '|'$objClass ''// [Function : Generates Prev/Next Links]

        
{

            
$current_pg $GLOBALS[$this->offset]/$this->limit+1;

            if (
$current_pg 5)

            {

                
$fgp $current_pg $current_pg 1;

                
$egp $current_pg+4;

                if (
$egp $this->num_pages)

                {

                    
$egp $this->num_pages;

                    
$fgp $this->num_pages $this->num_pages  1;

                }

            }

            else {

                
$fgp 1;

                
$egp $this->num_pages >= 10 10 $this->num_pages;

            }



            if(
$this->num_pages 1) {

                
// searching for http_get_vars

                
foreach ($GLOBALS[HTTP_GET_VARS] as $_get_name => $_get_value) {

                    if (
$_get_name != $this->offset) {

                        
$this->_get_vars .= "$_get_name=$_get_value&";

                    }

                }

                
$this->successivo $GLOBALS[$this->offset] + $this->limit;

                
$this->precedente $GLOBALS[$this->offset] - $this->limit;

                
$this->theClass $objClass;

                if (!empty(
$rew)) {

                    
$return .= ($GLOBALS[$this->offset] > 0) ? "[<a href=\"$GLOBALS[PHP_SELF]?$this->_get_vars$this->offset=0\" $this->theClass>$frew</a>] <a href=\"$GLOBALS[PHP_SELF]?$this->_get_vars$this->offset=$this->precedente\" $this->theClass><font color='black'>$rew</font></a> $separator " "[$frew] $rew $separator ";

                }



                
// showing pages

                
if ($this->show_pages_number || !isset($this->show_pages_number))

                {

                    for(
$this->$fgp$this-><= $egp$this->a++)

                    {

                        
$this->theNext = ($this->a-1)*$this->limit;

                        
$_ss_k floor($this->theNext/26);

                        if (
$this->theNext != $GLOBALS[$this->offset])

                        {

                            
$return .= " <a href=\"$GLOBALS[PHP_SELF]?$this->_get_vars$this->offset=$this->theNext\" $this->theClass> ";

                            if (
$this->number_type == 'alpha')

                            {

                                 if(
$_ss_k>0)

                                 {

                                    
$theLink chr(64 + ($_ss_k));

                                    for(
$b 0$b $_ss_k$b++)

                                    {

                                       
$theLink .= chr(64 + ($this->theNext%26)+1);

                                    }

                                    
$return .= $theLink;

                                 } else {

                                 
$return .= chr(64 + ($this->a));

                                 }

                            } else {

                                
$return .= $this->a;

                            }

                            
$return .= "</a> ";

                        } else {

                            if (
$this->number_type == 'alpha')

                            {

                                 if(
$_ss_k>0)

                                 {

                                    
$theLink chr(64 + ($_ss_k));

                                    for(
$b 0$b $_ss_k$b++)

                                    {

                                       
$theLink .= chr(64 + ($this->theNext%26)+1);

                                    }

                                    
$return .= $theLink;

                                 } else {

                                 
$return .= chr(64 + ($this->a));

                                 }

                            } else {

                                
$return .= $this->a;

                            }

                            
$return .= ($this->$this->num_pages) ? " $separator " " ";

                        }

                    }

                    
$this->theNext $GLOBALS[$this->offset] + $this->limit;

                    if (!empty(
$fwd)) {

                        
$offset_end = ($this->num_pages-1)*$this->limit;

                        
$return .= ($GLOBALS[$this->offset] + $this->limit $this->total_result) ? "$separator <a href=\"$GLOBALS[PHP_SELF]?$this->_get_vars$this->offset=$this->successivo\" $this->theClass><font color='black'>$fwd</font></a> [<a href=\"$GLOBALS[PHP_SELF]?$this->_get_vars$this->offset=$offset_end\" $this->theClass>$ffwd</a>]" "$separator $fwd [$ffwd]";

                    }

                }

            }

            return 
$return;

        }



        function 
show_info() // [Function : Showing the Information for the Offset]

        
{

           if(
$GLOBALS[$this->offset] >= $this->total_result || $GLOBALS[$this->offset] < 0) return false;

            
//$return .= $this->total_result . " Total Results<br>";
            
$return .=  " Total  ".$this->total_result "<br>";
            
            
$_from $GLOBALS[$this->offset] + 1;

            
$GLOBALS[$this->offset] + $this->limit >= $this->total_result $_to $this->total_result $_to $GLOBALS[$this->offset] + $this->limit;

            
$return .= "Mostrando " $_from " de " $_to "<br>";

            return 
$return;

        }

    }

?>
  #16 (permalink)  
Antiguo 10/05/2007, 11:43
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Hola Macabro:
Ahora llegando a casa lo probaré, espero que funciones.

Gracias por tu ayuda...

También Gracias a Cirujano que también me ha ayudado bastante.

En estos momentos estoy fuera de xasa y no puedo probarlo.
Lo probaré en la noche...

Saludos.

Nano
  #17 (permalink)  
Antiguo 11/05/2007, 09:59
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Amigos:
De buevo por aquí. Aún no hay solución.

He probado el código de Macabro pero me sale el siguiente mensaje:
Por favor insertar una palabra Regresar ...

Qué puede estar mal?

Con respecto al código de paginator de jpinedo, creo que el error está aquí:
Código PHP:
$_pagi_query_string "?busqueda=".$busqueda."&"
El código anterior está en la página de paginator. Acontinuación coloco el código de donde lo saqué.


Código PHP:
Propagación de variables por el URL.
 *------------------------------------------------------------------------
 */
 
// La idea es pasar también en los enlaces las variables hayan llegado por url.
 
$_pagi_enlace $_SERVER['PHP_SELF'];
$_pagi_query_string "?busqueda=".$busqueda."&";// La idea es pasar también en los enlaces las variables hayan llegado por url.

 
 
if(!isset($_pagi_propagar)){
     
//Si no se definió qué variables propagar, se propagará todo el $_GET (por compatibilidad con versiones anteriores)
    //Perdón... no todo el $_GET. Todo menos la variable _pagi_pg
    
if (isset($_GET['_pagi_pg'])) unset($_GET['_pagi_pg']); // Eliminamos esa variable del $_GET
    
$_pagi_propagar array_keys($_GET);
 }elseif(!
is_array($_pagi_propagar)){
    
// si $_pagi_propagar no es un array... grave error!
    
die("<b>Error Paginator : </b>La variable \$_pagi_propagar debe ser un array");
 }
 
// Este foreach está tomado de la Clase Paginado de webstudio
 // (http://www.forosdelweb.com/showthread.php?t=65528)
 
foreach($_pagi_propagar as $var){
     if(isset(
$GLOBALS[$var])){
        
// Si la variable es global al script
        
$_pagi_query_string.= $var."=".$GLOBALS[$var]."&";
    }elseif(isset(
$_REQUEST[$var])){
        
// Si no es global (o register globals está en OFF)
        
$_pagi_query_string.= $var."=".$_REQUEST[$var]."&";
    }
 }

 
// Añadimos el query string a la url.
 
$_pagi_enlace .= $_pagi_query_string
Alguna ayuda por favor...

Está tranca...

Gracias por su ayuda.

Nano
  #18 (permalink)  
Antiguo 11/05/2007, 11:04
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 21 años, 2 meses
Puntos: 1
Re: Paginator no propaga variables...cómo se soluciona?

bueno, cambia la siguiente linea
Código PHP:
 // Get the search variable from URL 
  
$var = @$_GET['q'] ; 
por
Código PHP:

 
// Get the search variable from URL 
  
$var = @$_GET['busqueda'] ; 
  #19 (permalink)  
Antiguo 12/05/2007, 08:18
 
Fecha de Ingreso: julio-2005
Mensajes: 172
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Paginator no propaga variables...cómo se soluciona?

Ayuda..por favor..no m sale.
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 00:06.