El query es el siguiente
Código PHP:
$sql = "select * from tblibros where titulo='$_GET[buscar]' OR autor='$_GET[buscar]' ORDER BY id ASC";
| |||
Modelos de busqueda Amigos, tengo el siguiente query para hacer busquedas en dos campos de una base de datos mediante un solo campo de texto. Mi problema es que al hacer una busqueda con este codigo tengo que colocar las palabras o frases completas para que el resultado sea positivo, si dentro del campo tengo una frase, para la busqueda tengo que colocarla completa y necesito que no sea asi, que pueda buscar por palabras solamente. El query es el siguiente Código PHP: |
| ||||
Respuesta: Modelos de busqueda Te recominedo que uses MATCH en lugar de LIKE ya que es mucho mas rápida y te da los resultados tal como los necesitas.
Código:
Saludos!!! $sel="SELECT * FROM tblibros WHERE MATCH (titulo, autor) AGAINST ('$_GET[buscar]' IN BOOLEAN MODE)";
__________________ "Eres grande por que caminas entre gigantes" |
| |||
Respuesta: Modelos de busqueda Amigo Thewebsaint, en el caso de query que me indicas el error que me esta presentado es que apenas ingreso a la pagina lo hace mostrandome todos los registros de una vez y cuando la busqueda si hace el filtrado de los registros. Amigo ferbux, intente formar el query con tu sugerencia y me da el siguiente error "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'against '' in boolean mode)' at line 1". que creen que pueda ser? y gracias por las varias ayudas que me estan dando |
| ||||
Respuesta: Modelos de busqueda Que tal zubintro, para utilizar MATCH AGAINST, debes de utilizar indices FULLTEXT en los campos de tu tabla que vayas a incluir en la busqueda, mira este link Buscador en PHP Saludos. |
| |||
Respuesta: Modelos de busqueda Gracias por tu respuesta Carlojas, justamente encontre por internet que tendria que cambiar el tipo de tabla con la que estoy trabajando la cosa es que en phpmyadmin no se en que parte podria cambiar el tipo de tabla, esoty utilizando wampserver. Sabrias indicarme en que parte del Phpmyadmin o que instruccion sql tendria que correr para cambiar el tipo de tabla? |
| ||||
Respuesta: Modelos de busqueda
Código:
Pruebalo asi. $buscar=$_GET['buscar']; $sel="SELECT * FROM tblibros WHERE MATCH (titulo, autor) AGAINST ('$buscar' IN BOOLEAN MODE)"; $resul=mysql_query($sel) or die('Consulta fallida: ' . mysql_error()); $row=mysql_fetch_array($resul); print_r($row);
__________________ "Eres grande por que caminas entre gigantes" |
| |||
Respuesta: Modelos de busqueda Ya logre solucionar amigos, cambie el tipo de tabla (estaba por defecto en InnoDB) y la cambie con la sentencia sql "ALTER TABLE tblibros ENGINE = MYISAM" ahora utilice el metodo de busqueda sugerido por ferbux y funciona perfectamente!. Ahora tengo una duda, hay un campo donde el titulo del libro es "Curso introductorio de PHP". Al ingresar como parametro de busqueda PHP unicamente, no me recupera el valor. La cosa es que probe con palabras aisladas pero de mayor cantidad de caracteres y si efectua la busqueda. Alguien podria decirme a que se debe? Gracias por la ayuda a todos |