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

Buenas, decir que soy nuevo en el foro, y lo he estado leyendo previamente antes de hacer esta consulta.

De momento estoy probando en un localhost, cn el appserver, mas tarde ya lo subiria a un host y eso cuando ya "domine" el tema

Vamos ver, mi problema es el siguiente, yo quiero hacer un buscador que busque en mi base de datos y muestre los resultados encontrados ( y sino encuentra pues que lo diga )

por una parte tengo el archivo Index.html cn un formulario:

Código PHP:
<FORM METHOD=POST ACTION="buscar.php">
Buscar: <INPUT TYPE="text" NAME="busqueda">
</
FORM
y por otra parte tengo el archivo buscar.php

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
mysql_connect("Localhost","root","XXX");
mysql_select_db("nombrebasededatos"); 
// 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  REFERENCIA, TITULO FROM ARTICULOS WHERE VISIBLE =1
      AND 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...
    
$referencia=$row->REFERENCIA;
    
$titulo=$row->TITULO;
    echo 
$referencia." - ".$titulo."<br>";
  }
}
?>  

<body>
</body>
</html>
Luego la base de datos MYSQL la tengo de la siguiente forma, pego foto phpadmin:


Ahora cuando busco desde el index.html y me manda al buscar.php, me sale "Unknown column 'VISIBLE' in 'where clause' ", es lo maximo que he conseguido en una semana, ya que buscando y buscando por todo inet, solo conseguia que me diera fallo el codigo o bien, me salia la pagina en blanco.

Este codigo lo he sacado de un forero de este mismo foro, y de momento es con el que he conseguido avanzar mas.

Espero vuestra ayuda, muchas gracias y disculpar las molestias