Autor Tema: [Ayuda] Consulta para busqueda de multiples palabras.  (Leído 921 veces)

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
[Ayuda] Consulta para busqueda de multiples palabras.
« en: 13 de Julio de 2011, 15:10:48 pm »
Tengo montado el script y funciona a la perfección cuando buscas 1 sola palabra. Si buscas más de una palabra si que me conduce al script que selecciona de la base los datos, el problema es que me marca un error en la consulta mysql_fetch_array,  y es por el query.

El código es el siguiente:

$codigobusqueda="SELECT * , MATCH ( name, apellidos ) AGAINST ( '$name' ) AS Score FROM usuarios WHERE MATCH ( name, apellidos ) AGAINST ( '$name' ) ORDER BY id DESC LIMIT 50;";
       
   }

Con este codigo pretendo extraer los datos según el campo de busqueda mediante un $_GET['name'] al que le he asignado la variable $name.

¿Alguien me puede ayudar?.
Muchas gracias a todos de antemano.

Comunidad PHPeros

[Ayuda] Consulta para busqueda de multiples palabras.
« en: 13 de Julio de 2011, 15:10:48 pm »

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #1 en: 13 de Julio de 2011, 15:37:02 pm »
El error devuelto por mysql_error() ayudaría bastante

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #2 en: 13 de Julio de 2011, 15:50:52 pm »
Perdón, en que estaría pensando..

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\mipag\sisbusqueda.php on line 329, en la línea tengo un while($variable = mysql_fetch_array($consulta)){ echo$variable['nombre'];}

y el query lo tengo hecho en la variable consulta de la siguiente forma: $consulta = mysql_query($codigobusqueda);

El error está en la consulta que he puesto arriba..

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #3 en: 13 de Julio de 2011, 18:38:11 pm »
Y si pruebas con LIKE en la consulta (busca valores parecidos).
PD:
¿Que es esto?:
$codigobusqueda="SELECT * , MATCH ( name, apellidos ) AGAINST ( '$name' ) AS Score FROM usuarios WHERE MATCH ( name, apellidos ) AGAINST ( '$name' ) ORDER BY id DESC LIMIT 50;";
« Última modificación: 13 de Julio de 2011, 18:51:35 pm por -Pituko- »

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #4 en: 13 de Julio de 2011, 19:14:42 pm »
http://www.desarrolloweb.com/articulos/2087.php
Este enlace es de donde busque el codigo para busquedas de multiples palabras.

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #5 en: 13 de Julio de 2011, 20:15:36 pm »
http://www.desarrolloweb.com/articulos/2087.php
Este enlace es de donde busque el codigo para busquedas de multiples palabras.
Utiliza LIKE, es menos perfeccionado pero mas sencillo de usar.
« Última modificación: 13 de Julio de 2011, 20:18:28 pm por -Pituko- »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #6 en: 13 de Julio de 2011, 22:25:55 pm »
Primero debes probar esa sentencia en phpMyAdmin o lo que sea que estés usando y ver qué te está devolviendo la consulta.

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #7 en: 14 de Julio de 2011, 01:34:09 am »
La consulta no me muestra nada y me da error. He probado mil formulas, pero nada...

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #8 en: 14 de Julio de 2011, 04:43:19 am »
La consulta no me muestra nada y me da error. He probado mil formulas, pero nada...
Para no intentar analizar tu código, me podrías decir verbalmente lo que estás intentando hacer? Con ejemplos.

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #9 en: 14 de Julio de 2011, 11:41:31 am »
Estoy intentado hacer una busqueda FullText, sobre una busqueda en formulario o GET y clasificarlos sobre su id además de ordenarlos por id.

Espero que mas o menos se entienda lo que quiero decir, que me acabo de despertar y no me he tomado el café..

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #10 en: 14 de Julio de 2011, 12:16:55 pm »
Estoy intentado hacer una busqueda FullText, sobre una busqueda en formulario o GET y clasificarlos sobre su id además de ordenarlos por id.

Espero que mas o menos se entienda lo que quiero decir, que me acabo de despertar y no me he tomado el café..
Sigo diciendo que ayudaría saber el error que da MySQL, es decir, cuando lo probaste desde el PHPMyADMIN, ¿que dijo?

Y supongo que sí, pero, ¿has creado los índices en las columnas "name" y "apellidos"?

PD: Viva el spanglish ._.

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #11 en: 14 de Julio de 2011, 14:51:14 pm »
¿Spanglish? He puesto FullText porque es como lo tube que buscar para que me diera resultados el amigo google.
En cuanto al error, lo puse arriba, y lo vuelvo a poner:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\beemesis\busqueda.php on line 329

Linea 329 ->    while ($row = mysql_fetch_array($result)){

La busqueda del result es: $result = mysql_query("SELECT * , MATCH ( name, apellidos ) AGAINST ( '$name' ) AS id FROM usuarios WHERE MATCH ( name, apellidos ) AGAINST ( '$name' ) ORDER BY id DESC LIMIT 50");

Gracias :)

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #12 en: 14 de Julio de 2011, 15:21:12 pm »
Ese es un error de PHP no propio de MySQL. Él te dice que pruebes el código en phpMyAdmin y que veas qué error te aparece ahí.
Hice la consulta a un compañero de trabajo y concluimos en que puede ser dos cosas:
1. No declaraste correctamente el índice FULLTEXT.
2. No estás usando MyIsam como tecnología de almacenamiento en MySQL.

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #13 en: 14 de Julio de 2011, 15:23:26 pm »
¿Spanglish? He puesto FullText porque es como lo tube que buscar para que me diera resultados el amigo google.
En cuanto al error, lo puse arriba, y lo vuelvo a poner:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\beemesis\busqueda.php on line 329

Linea 329 ->    while ($row = mysql_fetch_array($result)){

La busqueda del result es: $result = mysql_query("SELECT * , MATCH ( name, apellidos ) AGAINST ( '$name' ) AS id FROM usuarios WHERE MATCH ( name, apellidos ) AGAINST ( '$name' ) ORDER BY id DESC LIMIT 50");

Gracias :)
Digo lo del spanglish porque una columna es "name", en inglés; y la otra "apellidos", en español.

Y como acaba de decir Physlet, decía que nos dijeras el error que devuelva phpmyadmin al hacer la consulta, o en su defecto el de mysql_error(), ya que con eso solucionarlo será bastante más facil

Desconectado MEJORENHO

  • PHPer@ Fijo
  • ***
  • Mensajes: 204
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
    • Beeme
Re:[Ayuda] Consulta para busqueda de multiples palabras.
« Respuesta #14 en: 14 de Julio de 2011, 16:04:59 pm »
Ese es un error de PHP no propio de MySQL. Él te dice que pruebes el código en phpMyAdmin y que veas qué error te aparece ahí.
Hice la consulta a un compañero de trabajo y concluimos en que puede ser dos cosas:
1. No declaraste correctamente el índice FULLTEXT.
2. No estás usando MyIsam como tecnología de almacenamiento en MySQL.

1.- ¿Como declaro el indice FULLTEXT?
2.- La tecnología de almacenamiento de la db es MyIsam.

Osea que me da que va a ser por la primera.
Si me pudieses explicar la número 1 estaría muy agradecido.

Os doy Karma a los 2 que me habeis ayudado bastante de momento jeje.
Gracias!