Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayuda con una consulta, porfa!!!

Estas en el tema de Ayuda con una consulta, porfa!!! en el foro de Mysql en Foros del Web. Hola a todos tengo un problema con una consulta, en la que no detecto en donde estoy mal, mi consulta es para hacer búsquedas es ...
  #1 (permalink)  
Antiguo 02/04/2008, 12:26
 
Fecha de Ingreso: enero-2008
Mensajes: 40
Antigüedad: 16 años, 3 meses
Puntos: 0
Ayuda con una consulta, porfa!!!

Hola a todos tengo un problema con una consulta, en la que no detecto en donde estoy mal, mi consulta es para hacer búsquedas es la siguiente:

"SELECT modules_blog_posts_info.ID, modules_blog_posts_info.Title, modules_blog_posts_info.Nice_Title, MATCH ( modules_blog_posts_info.Title, modules_blog_posts.Content ) AGAINST ( '$Search' ) AS Score FROM modules_blog_posts_info, modules_blog_posts WHERE MATCH ( modules_blog_posts_info.Title, modules_blog_posts.Content ) AGAINST ( '$Search' ) ORDER BY Score DESC LIMIT 50"

Pero al ejecutarla me marca el siguiente error:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Archivos de programa\xampp\htdocs\Framework\content\modules\se arch\index.php on line 59

No obtiene resultados, si alguien me puede ayudar, se los agradecería mucho.
  #2 (permalink)  
Antiguo 02/04/2008, 14:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: Ayuda con una consulta, porfa!!!

elgame
Creo que tu problema es que estás tratando de hacer una consulta con índices fulltext con campos de dos tablas diferentes: modules_blog_posts_info y modules_blog_posts. Ese es el problema, creo, pero desconozco las posibles soluciones, si es que las hay, que imagino que sí.
  #3 (permalink)  
Antiguo 02/04/2008, 17:38
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Ayuda con una consulta, porfa!!!

elgame
Tu problema creo que es un asunto de programación y no de mysql
Verifica que las variables estén llegando correctamente

Saludos!
  #4 (permalink)  
Antiguo 03/04/2008, 13:44
 
Fecha de Ingreso: noviembre-2002
Ubicación: http://localhost/
Mensajes: 195
Antigüedad: 21 años, 5 meses
Puntos: 1
Re: Ayuda con una consulta, porfa!!!

Si mal no recuerdo, ese problema es porque la consulta no esta trayendo ningun registro o la variable que hace la consulta (la popular $query) que sirve de referencia para la funcion mysql_fetch_object, es null. Intenta hacer esto:

Corre la consulta en un manejador de mysql y mira a ver si trae registro, usa la misma palabra que estas probando, en lugar de la variable $search, algo asi:

"SELECT modules_blog_posts_info.ID, modules_blog_posts_info.Title, modules_blog_posts_info.Nice_Title, MATCH ( modules_blog_posts_info.Title, modules_blog_posts.Content ) AGAINST ( '$Search' ) AS Score FROM modules_blog_posts_info, modules_blog_posts WHERE MATCH ( modules_blog_posts_info.Title, modules_blog_posts.Content ) AGAINST ( 'prueba' ) ORDER BY Score DESC LIMIT 50"

luego, si trae cero registro, prueba con uno un poco mas generico que seguramente traiga registro, por ejemplo:

"SELECT modules_blog_posts_info.ID, modules_blog_posts_info.Title, modules_blog_posts_info.Nice_Title, MATCH ( modules_blog_posts_info.Title, modules_blog_posts.Content ) AGAINST ( '$Search' ) AS Score FROM modules_blog_posts_info, modules_blog_posts WHERE MATCH ( modules_blog_posts_info.Title, modules_blog_posts.Content ) AGAINST ( 'a' ) ORDER BY Score DESC LIMIT 50"

y mira a ver si buscando solamente la letra "a" (que lo mas probable sea que traiga algo) sigue dando el error.

Si cuando lo corras en el manejador que uses, el sql devuelve error, entonces ese es el problema, pon aqui el error para verlo.

Si en el manejador corre bien, entonces prueba buscando solamente la letra a, si buscando la letra a sigue dando error y verificaste que trajo registros, entonces tu problema es de php.

Intentalo y dime que tal los resultados. Suerte
__________________
http://www.ingenierosinc.com
  #5 (permalink)  
Antiguo 07/04/2008, 05:28
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: Ayuda con una consulta, porfa!!!

Me reafirmo en mi primera opinión y te diré que creo que el problema es que has juntado dos índices fulltext de distintas tablas en un mismo MATCH, y por otra parte no veo la relación entre tus dos tablas. Ahora he dado con una solución que tal vez te resuelva el problema, si no totalmente, sí parcialmente: con un inner join entre las dos tablas, que imagino que estarán relacionadas, y un OR separando dos MATCH... AGAINST cada uno con sus índices respectivos y con la misma búsqueda, obtendrás lo que quieres. He eliminado lo del Score de momento: luego lo tendrás que incorporar y lo he hecho para que veas que esto puede funcionar. He añadido al selector un campo de la tabla modules_blog_posts para que veas que se lo trae también.

"SELECT modules_blog_posts_info.ID, modules_blog_posts_info.Title, modules_blog_posts_info.Nice_Title, modules_blog_posts.Content FROM modules_blog_posts_info mi INNER JOIN modules_blog_posts mp ON (aquí entre un igual los campos por los que están relacionadas ambas tablas) WHERE MATCH ( mi.title, mi.Nice_Title) AGAINST ( '$Search' ) OR MATCH (mp.Content ) AGAINST ( '$Search' ) ORDER BY...

Última edición por jurena; 11/04/2008 a las 12:37
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:15.