Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/08/2007, 08:04
dalphy
 
Fecha de Ingreso: diciembre-2006
Mensajes: 12
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Problema con paginación de resultados de una búsqueda

Cita:
Iniciado por Spookysama Ver Mensaje
Si nos pones el codigo tal vez podemos ver de donde proviene el error

Este es el código:

Código PHP:
session_start ();
$_SESSION['buscador'] = $_POST;


$keyword=$_POST['keyword'];


$query_rsbusqueda "(SELECT titulo AS titulo, articulo, id_pueblo AS url, imagen, link, dir_imagen FROM pueblos
                     WHERE articulo LIKE '%$keyword%'
                     OR titulo LIKE '%$keyword%'
                     OR historia LIKE '%$keyword%'
                     OR gastronomia LIKE '%$keyword%'
                     OR entradilla LIKE '%$keyword%'
                     OR naturaleza LIKE '%$keyword%')
                     UNION
                     (SELECT titulo AS titulo, articulo, id_comarca AS url, imagen, link, dir_imagen FROM comarcas
                     WHERE articulo LIKE '%$keyword%'
                     OR titulo LIKE '%$keyword%'
                     OR entradilla LIKE '%$keyword%')
                     UNION
                     (SELECT hotel AS titulo, articulo, id_hotel AS url, codigo AS imagen, link, dir_imagen FROM hoteles
                     WHERE articulo LIKE '%$keyword%'
                     OR hotel LIKE '%$keyword%'
                     OR pueblo LIKE '%$keyword%'
                     OR tipo LIKE '%$keyword%'
                     OR servicios LIKE '%$keyword%'
                     OR entradilla LIKE '%$keyword%')
                     UNION
                     (SELECT titulo, articulo, id_ruta AS url, imagen, link, dir_imagen FROM rutas
                     WHERE articulo LIKE '%$keyword%'
                     OR titulo LIKE '%$keyword%'
                     OR entradilla LIKE '%$keyword%')
                     UNION
                     (SELECT titulo, evento AS articulo, eventoid AS url, imagen, link, dir_imagen FROM eventos
                     WHERE evento LIKE '%$keyword%'
                     OR titulo LIKE '%$keyword%'
                     OR fecha_ev LIKE '%$keyword%'
                     OR pueblo LIKE '%$keyword%')"
;
                     
$rsbusqueda mysql_query($query_rsbusqueda$link) or die(mysql_error());
$row_rsbusqueda mysql_fetch_assoc($rsbusqueda);
$totalRows_rsbusqueda mysql_num_rows($rsbusqueda);

        
$num_registros $totalRows_rsbusqueda;
        
$limite        15;
        
$pagina        = ((isset($_GET['pagina'])) && (is_numeric($_GET['pagina'])))? $_GET['pagina'] : 1;
        
$maxPaginas    10;
        
$inicio        = ($pagina-1)*$limite;
        
$num_paginas   ceil($num_registros/$limite);
        
$primera_ref   $inicio+1;

$query_rsbusqueda sprintf("%s LIMIT %s, %s"$query_rsbusqueda$inicio$limite);
$rsbusqueda mysql_query($query_rsbusqueda$link) or die(mysql_error());
$row_rsbusqueda mysql_fetch_assoc($rsbusqueda);
$totalRows_rsbusqueda mysql_num_rows($rsbusqueda);        
        

        if (
$totalRows_rsbusqueda 0)
        {    
            do {
            
            
$pos_busqueda strpos(strtolower($row_rsbusqueda['articulo']), strtolower($_POST['keyword']));
                
$pos_inicial = (($pos_busqueda-80) > 0)?$pos_busqueda-80:0;
                
$pos_final   = (($pos_busqueda+80) < strlen($row_rsbusqueda['articulo']))?$pos_busqueda+80:0;
                
                
$txt_busqueda_generado str_replace(strtolower($_POST['keyword']), "<b>" $_POST['keyword'] . "</b>"strtolower($row_rsbusqueda['articulo']));
                
$txt_busqueda_generado substr($txt_busqueda_generado$pos_inicial160);
                
                
$array_txt_busqueda_generado explode(" "$txt_busqueda_generado);

                if ( (
count($array_txt_busqueda_generado) > 2) && (strlen($txt_busqueda_generado) > 60))
                {
                    
$array_txt_busqueda = array();
                    for(
$i=1$i<count($array_txt_busqueda_generado)-1$i++)
                    {
                        
$array_txt_busqueda[] = $array_txt_busqueda_generado[$i];
                    }
                    
$txt_busqueda_generado implode(" "$array_txt_busqueda);
                }
                
                if (
$pos_inicial 0)
                {
                    
$txt_busqueda_generado "... $txt_busqueda_generado";
                }
                if (
$pos_final 0)
                {
                    
$txt_busqueda_generado .= " ...";
                }                
            
                
$array_busqueda[] = array("titulo"    => $row_rsbusqueda['titulo'],
                                          
"imagen" => $row_rsbusqueda['imagen'],
                                          
"url"  => $row_rsbusqueda['url'],
                                          
"link"     => $row_rsbusqueda['link'],
                                          
"dir_imagen"  => $row_rsbusqueda['dir_imagen'],
                                          
"articulo"  => $txt_busqueda_generado);
            }
            while (
$row_rsbusqueda mysql_fetch_assoc($rsbusqueda));
        } 
En otras busquedas similares con iniciar sección me valía para que recordase la búsqueda e hiciese la paginación de forma correcta, pero en este caso no.

Por cierto trabajo con smarty así que poner todo el código sería un poco complicado.