Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/01/2009, 10:13
GENESISBM
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Buscador PHP mysql

Vale, muchas gracias, he conseguido buscar xD, pero bueno sigo teniendo algunos problemas, aun que lo basico ya lo he conseguido.

Codigo actualmente

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>

<?php
//cadena de conexion//CONEXION MYSQL Y BASE DE DATOS
mysql_connect("Localhost","root","XXXX"); //conexion a MYSQL HOST/USUARIO/PASS
mysql_select_db("todotrenty");  //CONEXION a la base de datos exacta
// DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
if (!empty($_POST['busqueda'])){
$busqueda=$_POST['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 TITULO FROM ARTICULOS WHERE DESARROLLO LIKE  '%$busqueda%' OR TITULO LIKE  '%$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, MATCH ( TITULO, DESARROLLO ) AGAINST (  '$busqueda' ) AS Score FROM ARTICULOS WHERE MATCH ( TITULO, DESARROLLO ) AGAINST (  '$busqueda' ) ORDER  BY Score DESC LIMIT 50";
  }
  
$result=mysql_query($cadbusca) or die (mysql_error());
  While(
$row=mysql_fetch_object($result))
  {
    
//Mostramos los titulos de los articulos o lo que deseemos...
    
$desarrollo=$row->DESARROLLO;
    
$titulo=$row->TITULO;
    echo 
$desarrollo." - ".$titulo."<br>";
  }
}
?>  

<body>
</body>
</html>
tengo los siguientes problemas:

Cuando busco con mas de una palabra por ejemplo, en la base de datos tengo Señor de los anillos en "titulo", si pongo "señor", si que me encuentra "el señor de los anillos", pero si pongo el nombre completo la pagina sale en blanco, a que se debe?

Despues, en los resultados, yo quiero que me salga el "desarrollo" y el "titulo", me sale:

busco batman por ejemplo, sale "- batman" en los resultados, yo quiero que salga el Titulo y despues el desarrollo que tenga puesto, tampoco se a que se debe ese "-"

Muchas gracias por todo, me habeis solucionado en horas lo que yo no he podido solucionar en semanas xD

EDITO: se me olvidaba, si me podeis decir el codigo que tengo que poner para cuando no encuentre ningun resultado, por ejemplo, busco "muñeco" y no encuentra nada que contenga la palabra muñeco, yo quiero que ponga algo del estilo "No se han encontrado resultados"

Gracias de nuevo