http://www.after-hours.org/blog/archives/2005/10/27/buscador-flash-by-palmerita/1/
donde haces un buscador con flash + php + mysql y muestras los resultados en el mismo flash, bueno al grano intente adaptarlo para q me busque los contenidos en la base de datos de Wordpress, en el script de busqueda tiene 2 formas una para cuando se busca 1 sola palabra y otra para cuando buscas mas d 1 palabra..solo logre q me encuentre y muestre contenidos cuando busco con una sola palabra pero cuando busca 2 palabras no me muestra resultado..........
estructura BD....
Código :
CREATE TABLE `articulos` ( `referencia` int(11) NOT NULL default '0', `titulo` varchar(100) NOT NULL default '', `desarrollo` text NOT NULL, `autor` varchar(50) NOT NULL default '', PRIMARY KEY (`referencia`), FULLTEXT KEY `busqueda` (`titulo`,`desarrollo`) ) TYPE=MyISAM;
--
-- Volcar la base de datos para la tabla `articulos`
--
INSERT INTO `articulos` VALUES (1, 'CUATRO GALLEGOS EN LAS ISLAS VÍRGENES DEL CARIBE', '... y cuatro años ahorrando para mejor ron... ¿Paticruzado o Brugal?', '');
INSERT INTO `articulos` VALUES (2, 'CUANDO JONAS GANO BJORN', surf... Entrevista con el saltador más bestia de todos los tiempos.', 'otros');
INSERT INTO `articulos` VALUES (4, 'Stéphane Etienne: In waves we trust', 'Para Stéphane y Nicole, navegar en olas con tamaño era algón sobre la actitud “big wave riding”.', '');
INSERT INTO `articulos` VALUES (0, 'Flaka con Christophe Ferrareto', 'Un 360º Upwind que se hace la mitad en el aire y la sacarlo, te hagan morder el anzuelo.', '');
INSERT INTO `articulos` VALUES (6, 'El Taka, por Dario Ojeda, E-con la proa de la tabla)... ¡En este caso las olas están claramente de nuestro lado!\r\nPor Darío Ojeda, E-211', '');
-------
script de busqueda: buscar.php
Código :
<?php
include ("conectar.php");
// DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
$busqueda= $_REQUEST["busqueda"];
if ($busqueda<>''){
//CUENTA EL NUMERO DE PALABRAS
$trozos=explode(" ",$busqueda);
$numero=count($trozos);
if ($numero==1) {
//SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
$cadbusca="SELECT referencia, titulo FROM articulos WHERE UPPER(desarrollo) LIKE '%".strtoupper($busqueda)."%' OR titulo LIKE '%".strtoupper($busqueda)."%' LIMIT 50";
} elseif ($numero>1) {
//SI HAY UNA FRASE SE UTILIZA EL ALGORTIMO DE BUSQUEDA AVANZADO DE MATCH AGAINST
//busqueda de frases con mas de una palabra y un algoritmo especializado
$cadbusca="SELECT referencia, titulo FROM articulos WHERE MATCH ( titulo, desarrollo ) AGAINST ( '".($busqueda)."' ) ORDER BY referencia DESC LIMIT 50";
}
$handler=mysql_query($cadbusca) or die("Error en la consulta. Pongase en contacto con el administrador ".mysql_error());;
$resultado="";
$enviar="true";
//$resultado="<br/><b>RESULTADOS:</b><br/>";
while($row=mysql_fetch_array($handler)){
//Mostramos los titulos de los articulos o lo que deseemos...
$referencia=$row["referencia"];
$titulo=$row["titulo"];
$busqueda=$row["busqueda"];
$resultado.=$titulo."|";
$referencias.=$referencia."|";
}
print "&resultado=".$resultado;
print "&referencias=".$referencias;
print "&enviar=".$enviar;
}
?> mostrar.php
Código :
<?
include ("conectar.php");
$suRefer= $_REQUEST["suRefer"];
/* Creamos la consulta (query) que obtendrá todos los mensajes de la base de datos */
$query = "SELECT * FROM articulos WHERE referencia=$suRefer";
echo $query;
/* mandamos que se ejecute el query con la funcion "mysql_query()" de php */
$resultado = mysql_query($query);
/* Si hubo algun problema al ejecutar la consulta o no hay ningun mensaje, mandamos el mensaje de error a flash y terminamos la ejecución del script */
if ($row=mysql_fetch_array($resultado,MYSQL_ASSOC)) {
$ver_resultado = $row['desarrollo'];
print "&ver_resultado=".$ver_resultado;
} else {
echo "no resultados";
}
/* Por último cerramos la conexión con MySql */
mysql_close($link);
?>
con todo esto de arriba me sale bien pero cuando apapto algunas cosas para Wordpress no me sale....aunq no entiendo ese "algoritmo" de busqueda cuando para 2 palabras....disculpen pr el post tan largo de antemano gracias por su atencion..... 