Comentarios sin revisar del artículo: Programar un buscador con PHP y MySQL.

12 comentarios sin revisar
29/2/08

Por: El Hispano
Magnifico articulo, sencillo, rapido y práctico.
No estaría mal que actualizarais con lo de IN BOOLEAN MODE ya que hasta que no añadi eso a mi sentencia, no conseguí que funcionara correctamente.
19/9/08

Por: Toni
Yo tenia el mismo problema pero como usaba tablas tipo InnoDB no cree el index. para solucionarlo use una funcion que cambia los espacios en blanco (" ") de las palabras de la busqueda y las cambie por "|" (OR logico en sql) y depues pase eso como parametro y use la funcion REGEXP de sql:
ejemplo: buscar: hola que tal
despues de cambiarlo queda: hola|que|tal

entonces hago:
select * from tabla where (campo1 regexp "cadena" or campo2 regexp "cadena"...)

cadena lo paso como parametro.

Espero que les sirva :D


07/10/08

Por: Ana
Hola, ayuda por favor, trate de hacer las consultas pero me marca el sig error: Parse error: parse error in c:archivos de programaeasyphp1-8wwwcopiapruebacatalogo.php on line 55

mi código es el siguiente espero me puedan ayudar:

<?
$host="localhost";
$user="root";
$password="";
$db="copiaprueba";
$conexion=mysql_connect($host,$user,$password);
$select_db=mysql_select_db($db,$conexion);
include("conecta.php");

$trozos=$_POST['area'];

//DEBO PREPARAR LOS TEXTOS QUE VOY A BUSCAR si la cadena existe
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 * FROM info2000 WHERE VISIBLE =1 AND area LIKE "%$busqueda%" OR aut 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 id, aut , MATCH ( aut, area ) AGAINST ( "$busqueda" ) AS aa FROM info2000 WHERE MATCH ( aut, area ) AGAINST ( '%"$busqueda"%' IN
BOOLEAN MODE ) ORDER BY aa";
}
$result=mysql("teleformacion", $cadbusca);
While($row=mysql_fetch_object($result))
{
//Mostramos los titulos de los articulos o lo que deseemos...
$area=$row->AREA;
$autor=$row->AUTOR;
echo $area." - ".$autor."<br>";;
}



?>
<hr size="3" color="808080" width="100%" align="left"> <!-- línea gris-->
<?
echo "<br>";
echo "<br>";


echo "<a href='info.php'>NUEVA CONSULTA</a>"

?>
25/10/08

Por: misel
En esta pagina se explica don detalle el uso de esta técnica

http://deckerix.tuxfamily.org/leerArticulo.php?post=92
20/1/09

Por: Dinno
Hola, soy novato :P
Copié el código de buscar.php que aparece como ejemplo y lo ejecuté en mi servidor (obviamente con los cambios correspondientes ^^) y me da el siguiente error "Parse error: syntax error, unexpected $end in E:local
oboty.php on line 21"

busqué que estaba mal, pero no le encuentro nada :S, probé a eliminar espacios, me fijé en que todas las llaves se cerraran, agregué el cierre de conexión con MySQL y nada :S, alguién puede ayudarme :P???
12/2/09

Por: Rafael Navas
Hola a todos!
Solamente tengo una duda, antes del último while hay una llamada a la funcio mysql: "$result=mysql("teleformacion", $cadbusca);", esta no la conozco y no la encuentro por ningún lado mas.
Será un funcion personalizada?
El script me parece muy practico y sencillo.
Felicitaciones Miguel, sigue adelante, para atras ni para agarrar impulso. :)

Saludos
15/3/09

Por: Nicolas
PESIMO!
15/4/09
Otra forma
Por: POPCORN
En esta web plantean otra forma de hacer esto.

http://www.programacionweb.net/articulos/articulo/?num=50

Saludis
30/4/09
Gracias
Por: Franco
Gracias despistao, utilize IN BOOLEAN MODE y anda perfecto!!!!
02/6/09
varios errores
Por: aka
encima de la linea [$result=mysql("teleformacion", $cadbusca);] falta un [}] (sin llaves) he copiado todo tal cual para crear el buscador y me da los siguientes errores:

Notice: Undefined variable: busqueda in C:wampwwwusarticulosuscar.php on line 10

Notice: Undefined variable: cadbusca in C:wampwwwusarticulosuscar.php on line 23

Notice: mysql() [function.mysql]: This function is deprecated; use mysql_query() instead. in C:wampwwwusarticulosuscar.php on line 23

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:wampwwwusarticulosuscar.php on line 24

alguna sugerencia?? gracias
26/8/09
Como evitar que busque en enlaces? (por ejemplo)
Por: Miquel
El código me funciona perfectamente y es rapidísimo.
Lo he codificado para que la palabra o palabras buscadas salgan en color rojo y en negrita. Pero tengo un problema. Busca dentro del texto de un campo TEXT de una base de datos MySql. En algunos de esos campos hay enlaces para que al escribir en pantalla dicho campo aparezcan fotografias.
Si en ese enlace aparece la palabra que busco encuentra el campo perfectamente, pero me causa dos problemas.
Si esa palabra no aparece también en el texto no la remarca, pero... es que además impide que aparezca la fotografia.
Hay alguna forma de que no busque dentro de los enlaces?
Gracias
26/8/09
por fa ayendenme
Por: nestor raul
tengo el siguiente codigo pero megenera errores
<table width="100%" border="0" cellspacing="0" cellpadding="0">
Buscar: <input name="palabra">
<input type="submit" name="buscador" value="Buscar">
</form>
<?
if ($_POST['buscador'])
{
// Tomamos el valor ingresado
$buscar = $_POST['palabra'];

// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos y seleccion de registros
$con=mysql_connect("localhost","root","");
$sql = "SELECT * FROM datose WHERE nombre like '%$buscar%' ORDER BY nombre";
mysql_select_db("estudiante", $con);

$result = mysql_query($sql, $con);

// Tomamos el total de los resultados
$total = mysql_num_rows($result);

// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";
do {
?>
<p><b><a href="noticia.php?id=<?=$row['id'];?>"><?=$row['titulo'];?></a></b></p>
<?
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
}
}
?>

Alojados en el grupo