Foros del Web » Programando para Internet » PHP »

Consulta con php

Estas en el tema de Consulta con php en el foro de PHP en Foros del Web. Hice la siguiente consulta: (nombre es la columna y color es la tabla) Cita: $query = "SELECT * from color WHERE MATCH(nombre) AGAINST ('$juego' IN ...
  #1 (permalink)  
Antiguo 25/03/2016, 14:47
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Consulta con php

Hice la siguiente consulta: (nombre es la columna y color es la tabla)

Cita:
$query = "SELECT * from color WHERE MATCH(nombre) AGAINST ('$juego' IN BOOLEAN MODE) ORDER BY nombre ASC $limit";
Funciona perfectamente. Ahora quiero buscar la misma variable: $juego, que es una variable obtenida de una caja de texto (buscador), en tres tablas: color, longitud y cantidad.

Cita:
$query = "SELECT * from color, longitud, cantidad WHERE MATCH(nombre) AGAINST ('$juego' IN BOOLEAN MODE) ORDER BY nombre ASC $limit";
Dando el siguiente error:

"Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in .................. on line 255"

Es evidente que la sintaxis, como mínimo, es incorrecta ¿Alguien podría orientarme como hacer la búsqueda del valor de la variable $juego en tres o más tablas al mismo tiempo? Muchas gracias.
  #2 (permalink)  
Antiguo 25/03/2016, 15:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: Consulta con php

Intenté esto:

Cita:
$query="SELECT color.nombre, longitud.nombre FROM color INNER JOIN longitud ON color.nombre = longitud.nombre WHERE MATCH(nombre) AGAINST ('$juego' IN BOOLEAN MODE) ORDER BY nombre ASC $limit"
Y tiró el siguiente error:

"SCREAM: Error suppression ignored for
( ! ) Parse error: syntax error, unexpected '$resultado' (T_VARIABLE) in C:\wamp\www\........... on line 253"

¿Alguna idea? Muchas gracias de antemano
  #3 (permalink)  
Antiguo 25/03/2016, 15:43
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Consulta con php

Esto es del foro de bbdd más bien.

Igualmente prueba a imprimir la consulta y probarla directamente en phpmyadmin, para saber que falla en la consulta.
  #4 (permalink)  
Antiguo 25/03/2016, 15:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: Consulta con php

Que tarado, no me di cuenta antes de hacer esto. Gracias xeri...etc.
  #5 (permalink)  
Antiguo 25/03/2016, 15:48
Avatar de 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: Consulta con php

Cita:
Iniciado por omdsetenta Ver Mensaje

"Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in .................. on line 255"

Es evidente que la sintaxis, como mínimo, es incorrecta ¿Alguien podría orientarme como hacer la búsqueda del valor de la variable $juego en tres o más tablas al mismo tiempo? Muchas gracias.
El error es de PHP, no de MySQL, y es altamente probable que se origine en una query que no devuelve datos, o bien en un error debido al contenido de la variables $limit,.
Pero como no estás posteando el codigo completo, no podemos saberlo. No nos estás dando la información necesaria.
Postea TODO el script. Y si es posible verifica lo que queda construido en esa sentencia, ya que el error es probable que venga desde alli.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 25/03/2016, 16:10
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: Consulta con php

No lo puedo resolver, creo que todo indica un error de SQl. Saludos.
Mensaje de la consola SQL:

"#1052 - Column 'nombre' in where clause is ambiguous"


Lamento la poca información (o peor aún, la información con errores) que hay en internet.
Si tienen un link saludable, les agradeceré. (si es en español, mucho mejor). Que pasen felices pascuas.

PD: gnzsoloyo, buena idea. Ademas, lo de la interfase silla-teclado es genial. Saludos.
  #7 (permalink)  
Antiguo 25/03/2016, 18:24
Avatar de 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: Consulta con php

Cita:
"#1052 - Column 'nombre' in where clause is ambiguous"
Este es un error muy común al principio, y se da en la consulta.
Las dos tablas invocadas tienen una columna con exactamente el mismo nombre, y estás invocando ese campo en alguna parte.
Cuando eso pasa, el DBMS no puede determinar a cuál tabla te estás refiriendo, por eso lo denomina "ambiguo".
La solucion está en el SQL: Tienes que indicar de cuál tabla lo tiene que tomar en forma EXPRESA, sea por nombre de tabla o con el alias de la misma:
Código SQL:
Ver original
  1. SELECT co.nombre, lo.nombre
  2. FROM color co INNER JOIN longitud lo ON co.nombre = lo.nombre
  3. WHERE MATCH(lo.nombre) AGAINST ('$juego' IN BOOLEAN MODE)
  4. ORDER BY lo.nombre ASC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 26/03/2016, 09:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: Consulta con php

Exacto, las tablas son diferentes, pero quiero leer el mismo campo (columna) de cada una de ellas. Muchas gracias, ahora lo voy a probar.
  #9 (permalink)  
Antiguo 26/03/2016, 09:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: Consulta con php

Cita:
SELECT ve.nombre, co.nombre
FROM vegetales ve INNER JOIN copetin co ON ve.nombre = co.nombre
WHERE MATCH(co.nombre) AGAINST ('lechuga' IN BOOLEAN MODE)
ORDER BY co.nombre ASC
Tablas: vegetales (contiene lista de vegetales) y copetin (contiene lista de snacks).
Puse que buscara, en ambas tablas, la palabra "lechuga", y tiró 0 resultados (no encontró nada). Lo bueno es que ya no marca error. ¿Que puede ser?
Debería haber encontrado lechuga en la primer tabla y tirado 1 resultado.

RESUMEN:
Tengo 11 tablas en mi base de datos. Quiero buscar registros, en todas las tablas y al mismo tiempo, que contengan la palabra que coloque un usuario (en este caso, la palabra lechuga, eso lo hago con php con variables $alimento por ej.).
La solución que hice fue crear una tabla aparte que contiene la información de todas las tablas para realizar la busqueda sin inner join. Se solucionó, pero es impráctico, porque si yo tengo que modificar cualquiera de las otras tablas, tengo que modificar esta tabla general tambien.

Última edición por omdsetenta; 26/03/2016 a las 09:46
  #10 (permalink)  
Antiguo 26/03/2016, 14:20
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Consulta con php

Como te indique desde el principio tu problema es de base de datos, crea un tema allí y explica tu problema seguramente te puedan brindar una solución.

Siento no ser de más ayuda.

Etiquetas: mysql, select, tabla, variable
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 00:57.