Tema: Buscador
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/07/2005, 16:27
Avatar de PabloP
PabloP
 
Fecha de Ingreso: marzo-2005
Mensajes: 83
Antigüedad: 14 años, 9 meses
Puntos: 0
ok aca esta la solución
<?php require_once('../Connections/conexportal.php'); ?>//archivo de conexión

<?php
$palabras = $_GET['txtpal'];
$desglose = explode(" ", $palabras);
$cantidad = 0;
for ($i=0;$i<count($desglose);$i++)
{
$cantidad++;
}

if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
//Cuenta cuantas noticias existen en la consulta
$j = 0;
$a = 0;
while ($j<$cantidad) {
mysql_select_db($database_conexportal, $conexportal);
$consulta_query_not = ("SELECT COUNT(*) FROM noticias WHERE noticias.titulo_noticia LIKE '%".$desglose[$j]."%'");
$consulta_reg = mysql_query($consulta_query_not, $conexportal) or die(mysql_error());
$j++;
}
list($total) = mysql_fetch_row($consulta_reg);
$tampag = 6;
$reg1 = ($pag-1) * $tampag;
///////////////////////////////////////////////////////////////////
while ($a<$cantidad) {
mysql_select_db($database_conexportal, $conexportal);
$query_not = "SELECT * FROM noticias WHERE noticias.titulo_noticia LIKE '%".$desglose[$a]."%' ORDER BY noticias.fecha_noticia DESC LIMIT $reg1, $tampag";
$reg = mysql_query($query_not, $conexportal) or die(mysql_error());

if (mysql_num_rows($reg)){
echo "<table width='550' border = '0'> \n";
while ($row = @mysql_fetch_array($reg)) {
echo "<tr><td>".$row["titulo_noticia"]."<br>
".$row["subtitulo_noticia"]."<br><br>
".$row["bajada_noticia"]."<br><br>
".$row["fuente_noticia"]."<br></td></tr>
<tr><td><img src='../imagenes/lineaazul.gif' width='500' height='2'></td></tr> \n";
}
echo "</table> \n";

}
else
echo "¡ No se ha encontrado ningún registro !";

$a++;
}
/* Funcion paginar
* actual: Pagina actual
* total: Total de registros
* por_pagina: Registros por pagina
* enlace: Texto del enlace
* Devuelve un texto que representa la paginacion
*/
function paginar($actual, $total, $por_pagina, $enlace) {
$total_paginas = ceil($total/$por_pagina);
$anterior = $actual - 1;
$posterior = $actual + 1;

if ($actual>1)
$texto = "<a href=\"$enlace$anterior\">&laquo;</a> ";
else
$texto = "<b>&laquo;</b> ";
for ($i=1; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
$texto .= "<b>$actual</b> ";
for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href=\"$enlace$i\">$i</a> ";
if ($actual<$total_paginas)
$texto .= "<a href=\"$enlace$posterior\">&raquo;</a>";
else
$texto .= "<b>&raquo;</b>";
return $texto;
}

echo paginar($pag, $total, $tampag, "resultado.php?pag=");
?>

aparentemente ahi se me soluciono, sólo falta validar un par de cosas como que no incluya monosílabos en las busquedas como "y", "de" , "a" etc.
y que por ejemplo si buscas con dos palabras y un registro contiene las dos aparece dos veces. pero no parecen validaciones muy complejas.