FAQ
Hola a todos y buenas:
Estoy programando un pequeño buscador para un sitio web y tengo un problema que requiere de su ayuda porque ya le he dado varias vueltas y no se que hacer al respecto.

Bueno como todo buscador tengo el formulario para introducir los términos de la búsqueda. Ahora para buscar utilizo FULL TEXT de MySQL y bueno claro está, pagino los resultados y aquí viene el problema.

Cuando retorno los resultados en la primera página todo sale a la perfección pero ahora cuando paso a la segunda página se pierde la variable del POST (la cadena de búsqueda) y la consulta me da error, porque el buscador vuelve a ejecutar la consulta nuevamente.

¿Me podrían dar alguna idea para solucionar el problema? Pensé en poner la cadena de búsqueda en una variable de sesión o en una cookie pero no se si este correcto del todo. Quizás lo que está mal es mi concepto de buscador.

Saludos a todos y gracias por adelantado
--
ReynierPM | 5to Ing. Informática
Aprendiz de mucho, maestro de poco.

Search Discussions

  • Leonardo Torno Hidalgo at Oct 18, 2006 at 7:25 pm
    y por que no pasas la busqueda por get y siempre la tienes a mano,
    ahora, cómo hacer la búsqueda, buscas todo de un golpe y luego paginas o
    haces búsquedas parciales?
    saludos
    torno

    Reynier Perez Mira escribió:
    Hola a todos y buenas:
    Estoy programando un pequeño buscador para un sitio web y tengo un problema que requiere de su ayuda porque ya le he dado varias vueltas y no se que hacer al respecto.

    Bueno como todo buscador tengo el formulario para introducir los términos de la búsqueda. Ahora para buscar utilizo FULL TEXT de MySQL y bueno claro está, pagino los resultados y aquí viene el problema.

    Cuando retorno los resultados en la primera página todo sale a la perfección pero ahora cuando paso a la segunda página se pierde la variable del POST (la cadena de búsqueda) y la consulta me da error, porque el buscador vuelve a ejecutar la consulta nuevamente.

    ¿Me podrían dar alguna idea para solucionar el problema? Pensé en poner la cadena de búsqueda en una variable de sesión o en una cookie pero no se si este correcto del todo. Quizás lo que está mal es mi concepto de buscador.

    Saludos a todos y gracias por adelantado
    --
    ReynierPM | 5to Ing. Informática
    Aprendiz de mucho, maestro de poco.
    --
    Lic. Leonardo Torno Hidalgo
    GNU/Linux User #277382
    http://elinux.cubatools.com/
    http://ehome.cubatools.com/
  • Gustavo Lescano at Oct 19, 2006 at 12:55 pm
    Yo utilizo un método de paginación en el que solamente se leen de la
    base los registros necesarios, utilizando la opcion LIMIT de MySQL.
    Para empezar tengo un formulario con un campo llamado txtBuscar dentro
    de un form con method GET.

    Básicamente el código es el siguiente:


    $varBuscar = @$_GET['txtBuscar'];
    if ($varBuscar != "")
    {
    $varBuscar = addslashes($varBuscar);

    $TAMANO_PAGINA = 50;

    //examino la página a mostrar y el inicio del registro a mostrar
    $pagina = @$_GET["pagina"];
    if (!isset($pagina))
    {
    $inicio = 0;
    $pagina=1;
    }
    else
    {
    $inicio = ($pagina - 1) * $TAMANO_PAGINA;
    }

    .
    .
    .

    Obtener la cantidad de registros que concuerden con el resultado:

    $sql = "select count(*) from articulos where Descripcion like '" .
    $varBuscar . "%';
    A este resultado lo almaceno en la variable $num_total_registros
    .
    .
    .

    $sql = "select * from articulos where Descripcion like '" .
    $varBuscar . "%' order by Descripcion limit " . $inicio . "," .
    $TAMANO_PAGINA;

    .
    .
    .

    $total_paginas = ceil($num_total_registros / $TAMANO_PAGINA);
    if ($total_paginas > 1){
    for ($i=1;$i<=$total_paginas;$i++){
    if ($pagina == $i)
    //si muestro el índice de la página actual, no coloco enlace
    echo "<b>" . $pagina . "</b> ";
    else
    //si el índice no corresponde con la página mostrada
    actualmente, coloco el enlace para ir a esa página
    echo "<a class='paginacion'
    href='articulos_search.php?pagina=" . $i . "&txtBuscar=" . $varBuscar .
    "'>" . $i . "</a> ";
    }
    .
    .
    .

    } <= Si no hay nada para buscar, tampoco hace falta que procese la parte
    de paginacion.

    Espero que te sea útil
    Saludos

    Gustavo

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedOct 18, '06 at 7:05p
activeOct 19, '06 at 12:55p
posts3
users3
websitephp.net

People

Translate

site design / logo © 2022 Grokbase