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

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Estas en el tema de Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource en el foro de Mysql en Foros del Web. Hola TODOS !!! una vez mas acudiendo su sabiduría !!! Resulta que tengo un buscado, funciona BA de maravillas, hasta que hice un MIXTO con ...
  #1 (permalink)  
Antiguo 11/09/2009, 18:50
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Exclamación Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Hola TODOS !!! una vez mas acudiendo su sabiduría !!!

Resulta que tengo un buscado, funcionaBA de maravillas, hasta que hice un MIXTO con AJAX, el buscado cuando uso solo una palabra funciona perfecto, pero cuando uso varias palabras me da un error, específicamente en esta línea:

$aux = Mysql_Fetch_Assoc(mysql_query($sqlStrAux,$link));

y esta línea hace referencia a esta otra:

//Contar cuantos registros hay en la tabla de empresas con todas las categorias, para el paginado
$sqlStrAux = "SELECT count(*) as total, MATCH (productos,observacion,nombre) AGAINST ('$q') AS Score FROM empresas WHERE MATCH (productos,observacion,nombre) AGAINST ('$q' IN BOOLEAN MODE) ORDER BY Score ASC";

$q - es la variable en la que tengo lo que viene del buscador, cuando busco solo una palabra sin problemas

Por favor alguna idea .. GRACIAS !!!
__________________
-----------------------------------
Éxitos !!! .. joao
  #2 (permalink)  
Antiguo 11/09/2009, 19:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

Acuerdate de colocar lo que sea programación en el foro que corresponde, en tu caso PHP.
Vamos por partes y no pongas todo junto en el codigo. Me refiero a la parte de $aux es mejor trabajarlo por separado.

Haz uso de las funciones de error para ver si ha habido errores en el codigo
Código PHP:
Ver original
  1. <?php
  2. $r = mysql_query($sqlStrAux) or die($mysql_error());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 11/09/2009, 19:39
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

Hola una vez mas ... te agradezco de antemano siempre la disposición ..
bueno, siguiendo tus indicaciones hice:

$aux = Mysql_Fetch_Assoc(mysql_query($sqlStrAux,$link) or die(mysql_error()));

y ahora cuando ejecuto la consulta queda en blanco la página y me tira el siguiente mensaje:
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 '(*) as total, MATCH (productos,observacion,nombre) AGAINST ('publicidad internet' at line 1

Yo nunca usé ese count junto con el MATCH AGAINST, no se realmente si se usa así, he buscado mucho pero al parecer NO está bien la syntaxis, DIGO POR el mensaje de error .. alguna idea ?? .. GRACIA !!!
__________________
-----------------------------------
Éxitos !!! .. joao
  #4 (permalink)  
Antiguo 11/09/2009, 19:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

Saca el count y haz la prueba y dinos como te salio, pero te indico que el problema no debe ser el count.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 11/09/2009, 19:51
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

sin el count, me saca el error inicial ... es decir, dejé ell select de la siguiente forma:

$sqlStrAux = "SELECT *, MATCH (productos,observacion,nombre) AGAINST ('$q') AS Score FROM empresas WHERE MATCH (productos,observacion,nombre) AGAINST ('$q' IN BOOLEAN MODE) ORDER BY Score ASC";

y me sigue entonces sacando el error del comienzo:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in d:\wamp\www\cl\buscador\buscador.php on line 172

la línea 172 es:
$aux = Mysql_Fetch_Assoc(mysql_query($sqlStrAux,$link) or die(mysql_error()));

Hay algo curioso, cuando puse or die(... el buscado de UNA SOLA PALABRA me tiraba el error que puse anterior, y si le saco el or die( ... no me tira el error y funciona bien ... no se me ocurre mas nada ... tampoco sacando el count funciona :(
__________________
-----------------------------------
Éxitos !!! .. joao
  #6 (permalink)  
Antiguo 11/09/2009, 20:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

Vamos a separar mysql_fetch_assoc de mysql_query. Coloca primero mysql_query aparte y llamala variable que tengas al mysql_fetch_assoc. A ver si te lanza el error el query.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 11/09/2009, 20:17
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

hice lo siguiente:

$sqlStrAux = "SELECT count (*) , MATCH (productos,observacion,nombre) AGAINST ('$q') AS Score FROM empresas WHERE MATCH (productos,observacion,nombre) AGAINST ('$q' IN BOOLEAN MODE) ORDER BY Score ASC

$result2=mysql_query($sqlStrAux,$link);
$aux=mysql_fetch_assoc($result2);

y me sigue saliendo:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in d:\wamp\www\cl\buscador\buscador.php on line 176

y mi línea 176 es:
$aux=mysql_fetch_assoc($result2);

luego puse
$result2=mysql_query($sqlStrAux,$link)or die(mysql_error());

y me saca el 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 '(*) , MATCH (productos,observacion,nombre) AGAINST ('a b') AS Score FROM empresa' at line 1

puse en mi buscador a b separados por un espacio

Ahora bien, saqué el count, es decir, hice esto:
$sqlStrAux = "SELECT * , MATCH (productos,observacion,nombre) AGAINST ('$q') AS Score FROM empresas WHERE MATCH (productos,observacion,nombre) AGAINST ('$q' IN BOOLEAN MODE) ORDER BY Score ASC

y no me tira error, pero no encuentra nada, incluso poniendo palabras dos exactas ue aparezcan en esos campos ...

Cita:
Iniciado por abimaelrc Ver Mensaje
Vamos a separar mysql_fetch_assoc de mysql_query. Coloca primero mysql_query aparte y llamala variable que tengas al mysql_fetch_assoc. A ver si te lanza el error el query.
__________________
-----------------------------------
Éxitos !!! .. joao
  #8 (permalink)  
Antiguo 11/09/2009, 20:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

¿Antes que todo creaste el campo como FULLTEXT? para que te funcione match against los campos tienen que estar declarados como FULLTEXT.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 11/09/2009, 20:30
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

si si, todos están FULLTEXT, todos los que uso .. .. ahora hice otra cosa, puse:

$sqlStrAux = "SELECT Count(*), MATCH (productos,observacion,nombre) AGAINST ('$q') AS Score FROM empresas WHERE MATCH (productos,observacion,nombre) AGAINST ('$q' IN BOOLEAN MODE) ORDER BY Score ASC";

tenia un espacio entre Count y (*), y ahora me tira el siguiente error:
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Estuve mirando por el foro, y ahora no estoy seguro si puedo usar el count, match, against todo junto, veo que muchos hacen todo separado.... puse un GROUP BY por mi ID por ejemplo:

$sqlStrAux = "SELECT Count(*), MATCH (productos,observacion,nombre) AGAINST ('$q') AS Score FROM empresas GROUP BY id_empresa WHERE MATCH (productos,observacion,nombre) AGAINST ('$q' IN BOOLEAN MODE) ORDER BY Score ASC";

pero al hacer esto me vuelve al 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 'WHERE MATCH (productos,observacion,nombre) AGAINST ('internet publicidad' IN BOO' at line 1

me parece que es un error de syntaxis ... bueno, así dice el error ... ahora, será que puedo usar todas esas cosas juntas ..??

Cita:
Iniciado por abimaelrc Ver Mensaje
¿Antes que todo creaste el campo como FULLTEXT? para que te funcione match against los campos tienen que estar declarados como FULLTEXT.
__________________
-----------------------------------
Éxitos !!! .. joao
  #10 (permalink)  
Antiguo 11/09/2009, 20:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

Bueno haz esta prueba, no coloques nada diferente a match against, solamente coloca en la consulta match against y olvidate de count y de *. Escribe y me dejas saber que te trae.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 11/09/2009, 20:37
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Sonrisa Respuesta: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

ahí no tira ningún error, pero no me trae ningún resultado, es decir, no ecuentra nada ... y por ejemplo pruebo con las palabras "internet publicidad" que están en uno de los campos en llos cuales busco, mi base de datos tiene muchas empresas, así que debería encontrar ...

Cita:
Iniciado por abimaelrc Ver Mensaje
Bueno haz esta prueba, no coloques nada diferente a match against, solamente coloca en la consulta match against y olvidate de count y de *. Escribe y me dejas saber que te trae.
__________________
-----------------------------------
Éxitos !!! .. joao
  #12 (permalink)  
Antiguo 12/09/2009, 09:12
 
Fecha de Ingreso: abril-2009
Ubicación: Miami
Mensajes: 182
Antigüedad: 15 años
Puntos: 8
Solucion! Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL resul

Hola a todos ... creo que resolví ya ... siguiendo las indicaciones anteriormente hechas por abimaelrc hice lo siguiente:

$sqlStrAux = "SELECT *, MATCH (productos,observacion,nombre) AGAINST ('$q') AS Score FROM empresas WHERE MATCH (productos,observacion,nombre) AGAINST ('$q' IN BOOLEAN MODE)";

acá lo que hice fue sacar el COUNT, luego dividí y use mysql_num_rows para contar la cantidad, y no use mas el Mysql_Fetch_Assoc

$result=mysql_query($sqlStrAux,$link);
$aux=mysql_num_rows($result);

Luego por supuesto en vez de usar mi $aux['total'] uso solamente $aux que es la que me trae el número de registros.

Realmente no se porque me dió problemas el count junto con el match, en fin, acá dejo la solución por si le puede servir a alguien .. gracias abimaelrc por la siempre buena disposición y las excelentes recomendaciones !!!!
__________________
-----------------------------------
Éxitos !!! .. joao
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 04:06.