Cita:
Iniciado por Spookysama
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_inicial, 160);
$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.