Comunidad de diseño web y desarrollo en internet online

problemz busqueda php mysql

Citar            
MensajeEscrito el 27 Dic 2005 02:53 am
hola estaba revisando un tutorial q me parecia chevere:
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.....

Por asc1

88 de clabLevel



Genero:Masculino  



Ultima edición por asc1 el 27 Dic 2005 03:08 pm, editado 1 vez

Peru .....

opera
Citar            
MensajeEscrito el 27 Dic 2005 08:57 am
hola
un par de tips;
1) hay unas etiquetas MUY útiles que ayudan MUCHO a entender y visualizar el código, son las [code]
2) pon SÓLO la parte del código que interese
3) utiliza google, hay cientos de pequeños snippets para hacer una búsqueda en sql con una o varias palabras

Por fael

BOFH

2443 de clabLevel

3 tutoriales
2 articulos

 

firefox
Citar            
MensajeEscrito el 27 Dic 2005 09:03 pm
editado....

Por asc1

88 de clabLevel



Genero:Masculino  

Peru .....

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.