Crear motor de búsqueda página web
Tengo un problema lo que pasa es que quiero realizar un motor de búsqueda para mi página, el código que tengo es el siguiente:
HTML (index.php)
<body>
<FORM METHOD=POST ACTION="buscar.php">
<input type="text" name="busqueda" />
<input type="submit" name="button" id="button" value="Enviar" />
</FORM>
</body>
PHP (buscar.php)
<?php
//cadena de conexion
mysql_connect("localhost","root","");
// DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
mysql_select_db("test");
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 * FROM articulos WHERE REFERENCIA LIKE '%$busqueda%' OR DESARROLLO LIKE '%$busqueda%' OR TITULO LIKE '%$busqueda%'";
} 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 *, MATCH ( TITULO, DESARROLLO, REFERENCIA )
AGAINST ( '$busqueda' ) AS Score FROM articulos WHERE
MATCH ( TITULO, DESARROLLO, REFERENCIA ) AGAINST ( '$busqueda' ) ORDER BY Score DESC LIMIT 50";
}
$result=mysql_query($cadbusca) or die (mysql_error());
while ( $row = mysql_fetch_object ($result)){
echo $row ->REFERENCIA."<br>"; //Aqui es lo que no sé si este bien
echo $row ->TITULO."<br>"; //Aqui es lo que no sé si este bien
echo $row ->DESARROLLO."<br>"; //Aqui es lo que no sé si este bien
echo "Encontro $numero registro(s)";
}
}
¿?>
Mi base de datos se llama test y cuenta con estos campos:
Referencia - int
Titulo - varchar (100)
Desarrollo - text
Autor – varchar (50)
Al hacer una consulta de un campo que si existe me manda estos errores:
Notice: Undefined property: stdClass::$REFERENCIA in C:\wamp\www\buscador2a\buscar.php on line 25
Notice: Undefined property: stdClass::$TITULO in C:\wamp\www\buscador2a\buscar.php on line 26
Notice: Undefined property: stdClass::$DESARROLLO in C:\wamp\www\buscador2a\buscar.php on line 27
Y cuando no existe no me manda nada pero eso significa que si no encontró nada, por esto no hay problema.
Espero me puedan decir que es lo que está mal.
HTML (index.php)
<body>
<FORM METHOD=POST ACTION="buscar.php">
<input type="text" name="busqueda" />
<input type="submit" name="button" id="button" value="Enviar" />
</FORM>
</body>
PHP (buscar.php)
<?php
//cadena de conexion
mysql_connect("localhost","root","");
// DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
mysql_select_db("test");
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 * FROM articulos WHERE REFERENCIA LIKE '%$busqueda%' OR DESARROLLO LIKE '%$busqueda%' OR TITULO LIKE '%$busqueda%'";
} 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 *, MATCH ( TITULO, DESARROLLO, REFERENCIA )
AGAINST ( '$busqueda' ) AS Score FROM articulos WHERE
MATCH ( TITULO, DESARROLLO, REFERENCIA ) AGAINST ( '$busqueda' ) ORDER BY Score DESC LIMIT 50";
}
$result=mysql_query($cadbusca) or die (mysql_error());
while ( $row = mysql_fetch_object ($result)){
echo $row ->REFERENCIA."<br>"; //Aqui es lo que no sé si este bien
echo $row ->TITULO."<br>"; //Aqui es lo que no sé si este bien
echo $row ->DESARROLLO."<br>"; //Aqui es lo que no sé si este bien
echo "Encontro $numero registro(s)";
}
}
¿?>
Mi base de datos se llama test y cuenta con estos campos:
Referencia - int
Titulo - varchar (100)
Desarrollo - text
Autor – varchar (50)
Al hacer una consulta de un campo que si existe me manda estos errores:
Notice: Undefined property: stdClass::$REFERENCIA in C:\wamp\www\buscador2a\buscar.php on line 25
Notice: Undefined property: stdClass::$TITULO in C:\wamp\www\buscador2a\buscar.php on line 26
Notice: Undefined property: stdClass::$DESARROLLO in C:\wamp\www\buscador2a\buscar.php on line 27
Y cuando no existe no me manda nada pero eso significa que si no encontró nada, por esto no hay problema.
Espero me puedan decir que es lo que está mal.
Respuesta de Jorge Vila
1