Bueno, gracias por lka ayuda. Mi idea era hacer un buscador tipo google dentro de mis noticias, o sea uno ingresa una frase y mi búsqueda encuentra todas las coincidencias con cada palabra de la frese sin repetir la noticia. Lo que primero hago es separar las palabras y eliminar los monosílabos como de, y, a, un por ejemplo y meter en un arreglo las palabras para luego realizar la busqueda, asigno a un nuevo arreglo cada id encontrado, lo limpio para eliminar los repetidos y luego hago un join al arreglo para utilizar este resultado en un sql con el IN o sea select * from tabla where id in arreglo. el problema es que al hacer el join, el sql considera todos los id como si fueran uno solo por lo que la búsqueda no encuentra resultado. Bueno eso, adjunto código, gracias.
Código PHP:
<?php
$palabras = $_POST['txtpal'];
$desglose = explode(" ", $palabras);
for ($a=0;$a<count($desglose);$a++)
{
if (($desglose[$a] == "de") OR ($desglose[$a] == "a") OR ($desglose[$a] == "y") OR ($desglose[$a] == "la") OR ($desglose[$a] == "los") OR ($desglose[$a] == "las") OR ($desglose[$a] == "el") OR ($desglose[$a] == "un") OR ($desglose[$a] == "unas") OR ($desglose[$a] == "unos"))
{
$desglose[$a] = "cadena-de-palabras-prohibidas"; //esto es para que no de problemas si la búsqueda comienza o termina con un monosilabo.
}
else
{
$desglose[$a] = $desglose[$a];
}
}
$limpieza_array = array_unique($desglose);
$cantidad = 0;
for ($b=0;$b<count($limpieza_array);$b++)
{
$cantidad++;
}
///////////////////////////////////////////////////////////////////////
if ($_POST['boton']=='avanzada')
{
$d = 0;
for ($c=0;$c<$cantidad;$c++)
{
mysql_select_db($database_conexportal, $conexportal);
$traer_ides = ("SELECT * FROM noticias WHERE (noticias.cuerpo_noticia LIKE '%".$limpieza_array[$c]."%' OR noticias.titulo_noticia LIKE '%".$limpieza_array[$c]."%' OR noticias.subtitulo_noticia LIKE '%".$limpieza_array[$c]."%') AND (noticias.area_noticia = 'general' OR noticias.area_noticia = 'columna')");
$ides_traidos = mysql_query($traer_ides, $conexportal) or die(mysql_error());
$pablo = mysql_fetch_assoc($ides_traidos);
do {
$myarreglo[$d] = $pablo["id_noticia"];
$d++;
} while ($pablo = mysql_fetch_assoc($ides_traidos));
}
}
elseif ($_POST['boton']=='rapida')
{
$d = 0;
for ($c=0;$c<$cantidad;$c++)
{
mysql_select_db($database_conexportal, $conexportal);
$traer_ides = ("SELECT * FROM noticias WHERE (noticias.titulo_noticia LIKE '%".$limpieza_array[$c]."%' OR noticias.subtitulo_noticia LIKE '%".$limpieza_array[$c]."%') AND (noticias.area_noticia = 'general' OR noticias.area_noticia = 'columna')");
$ides_traidos = mysql_query($traer_ides, $conexportal) or die(mysql_error());
$pablo = mysql_fetch_assoc($ides_traidos);
do {
$myarreglo[$d] = $pablo["id_noticia"];
$d++;
} while ($pablo = mysql_fetch_assoc($ides_traidos));
}
}
//////////////////////////////////////////////////////////////////////
$myarreglo_limpio = array_unique($myarreglo);//contiene todos los id de las noticias encontradas sin repetir
$myarreglo_unido = join($myarreglo_limpio);//junta todos los id
/////////////////////////////////////////////////aqui comienza el despliegue y la paginación////////////
if (!isset($pag)) $pag = 1; // Por defecto, pagina 1
//Cuenta cuantas noticias existen en la consulta
mysql_select_db($database_conexportal, $conexportal);
$consulta_query_not = ("SELECT COUNT(*) FROM noticias WHERE noticias.id_noticia IN ('".$myarreglo_unido."')");
$consulta_reg = mysql_query($consulta_query_not, $conexportal) or die(mysql_error());
list($total) = mysql_fetch_row($consulta_reg);
$tampag = 6;
$reg1 = ($pag-1) * $tampag;
///////////////////////////////////////////////////////////////////
mysql_select_db($database_conexportal, $conexportal);
$query_not = "SELECT * FROM noticias WHERE noticias.id_noticia IN ('".$myarreglo_unido."') 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"]."</td></tr>
<tr><td>".$row["subtitulo_noticia"]."</td></tr>
<tr><td></td></tr> \n";
}
echo "</table> \n";
}
else
echo "¡ No se ha encontrado ningún registro !";
/* 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\">«</a> ";
else
$texto = "<b>«</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\">»</a>";
else
$texto .= "<b>»</b>";
return $texto;
}
echo paginar($pag, $total, $tampag, "resultado2.php?pag=");
?>