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.....