Selecionar filas que contenga cualquier palabra dentro de un array
Publicado por Marino (2 intervenciones) el 08/03/2020 13:10:57
Hola, acabo de empezar con mysql y php y he estado buscando respuestas a mi pregunta en este foro pero como no halle la solucion en ningun post, he decidido postear yo mismo, pido disclpas de antemano si no busque suficiente y estoy repitiendo tema.
Al lio:
tengo una base de datos de prueba que contiene una unica tabla con 2 columnas:nombre e idiomas, que se va rellenando atraves de un formulario html, el campo idiomas es un array y guarda los datos separados por comas, es decir si en el formulario marcamos varias casillas en el campo idomas el valor de este quedaria algo asi: "ingles,frances,aleman", por ejemplo. He hecho un buscador donde pretendo que se pueda filtrar por idioma y ahora quiero que mysql seleccione las filas que contienen un determinado valor y para ello utilizo la siguiente sentencia:
el problema es que solamente me selecciona las filas que contien los valores que hay en la variable $valores (recogida del buscador) si estan en un determinado orden pero yo lo que quiero es que liste todas las filas que contengan cualquiera de los valores que me ha recogido la variable $valores independientemente del orden, para que se vea mas claro:
tengo un registro en la fila 1 donde idioma vale:ingles,frances,aleman,griego
y otro en la fila 2 donde idioma vale:ingles,aleman,griego
si selecciono en mi buscador que me muestre todos los registros de las personas que hablen ingles y aleman
solo me muestra el registro de la fila 2 ya que el de la 1 tiene la palabra frances entre medias...
un saludo y gracias de antemano...
Al lio:
tengo una base de datos de prueba que contiene una unica tabla con 2 columnas:nombre e idiomas, que se va rellenando atraves de un formulario html, el campo idiomas es un array y guarda los datos separados por comas, es decir si en el formulario marcamos varias casillas en el campo idomas el valor de este quedaria algo asi: "ingles,frances,aleman", por ejemplo. He hecho un buscador donde pretendo que se pueda filtrar por idioma y ahora quiero que mysql seleccione las filas que contienen un determinado valor y para ello utilizo la siguiente sentencia:
1
mysqli_query($con,"SELECT * FROM candidatos WHERE idioma LIKE '%$valores%'");
el problema es que solamente me selecciona las filas que contien los valores que hay en la variable $valores (recogida del buscador) si estan en un determinado orden pero yo lo que quiero es que liste todas las filas que contengan cualquiera de los valores que me ha recogido la variable $valores independientemente del orden, para que se vea mas claro:
tengo un registro en la fila 1 donde idioma vale:ingles,frances,aleman,griego
y otro en la fila 2 donde idioma vale:ingles,aleman,griego
si selecciono en mi buscador que me muestre todos los registros de las personas que hablen ingles y aleman
solo me muestra el registro de la fila 2 ya que el de la 1 tiene la palabra frances entre medias...
un saludo y gracias de antemano...
Valora esta pregunta


0