Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/06/2011, 17:11
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Sentencia para buscar CAMPO en cadena

Cita:
$geg=mysql_query("SELECT tabla_id,CONCAT('_',tabla_id,'_') AS tablacat FROM tabla_users WHERE user_id <> '$uid' AND LOCATE(tablacat,'$cadena')>0 ORDER BY RAND() LIMIT 1");

Resumiendo, XD, quisiera que la consulta me diga si el valor del campo TABLA_ID, se encuentra en la variable $CADENA.
El problema es que estás tratando de encontrar un valor con el WHERE dado usando para ello el ALIAS de un campo del select, y en el WHERE no admite usar ALIAS de las columnas. Sólo puedes usar el alias de la tabla.

Cita:
Y luego en PHP, me da el error de que la consulta tiró un Bool en vez de un parámetro:
while ($row=mysql_fetch_array($geg))

"Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given"

También intenté con "...tabla_id IN($cadena)..." pero nada.
En este caso el error es de PHP, no de MySQL, probablemente originado en el error de sintaxis de la consulta, que ya te mencioné.
Por otro lado, si bien la programación es un tema fuera del alcance del foro, te puedo decir que el error básicamente se origina en que cuando envías a hacer una consult aala base, siempre, siempre, siempre se debe verificar que el resultado sea una tabla de datos antes de intentar recorrerla. Eso es lo que haces mal: Mandas la consulta, y quieres recorrerla sin saber si realmente te está devolviendo algo válido primero.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)