Tengo una variable que proviene de un formulario, por ejemplo
datos=“ATEM, FISI” y deseo seleccionar de mi base datos MySQL el
registro que corresponde al campo asignaturas=“MATEMATICAS, FISICA”.
AgradecerÃa me fuera apuntada alguna técnica para realizar dicha
búqueda.
Gracias de antemano,
Diego
Diego Muñoz wrote:
Tengo una variable que proviene de un formulario, por ejemplo
datos=“ATEM, FISI” y deseo seleccionar de mi base datos MySQL el
registro que corresponde al campo asignaturas=“MATEMATICAS, FISICA”.
AgradecerÃa me fuera apuntada alguna técnica para realizar dicha
búqueda.
Gracias de antemano,
Diego
Donde quise decir datos=“ATEM, FISI” quise decir datos=“ATEM FISI”
Gracias por su atención,
Diego
No sé si te he entendido, pero puede que esto te sirva
en el controlador :
filtro = params[:datos].gsub(" “,”%") —> con esto le pones el comodin
%
en todos los espacios
filtro = “%”+filtro+"%"
Asignatura.find :all (:conditions => [“campo_asignatura like ?”, filtro
] )
Es algo asà lo que quieres?
Pues eso serÃa algo asà como:
condiciones = [] --> creas un array vacÃo
for dato in params[:datos].split(" ") --> lo separas por el espacio
condiciones << “nombre like (’%#{dato}%’) " —> vas poniendo las
condiciones para que filtre por el mismo campo
end
Asignatura.find :all (:conditions => condiciones.join(” and ") )
con eso deberÃa funcionarte
Luis V. wrote:
No sé si te he entendido, pero puede que esto te sirva
en el controlador :
filtro = params[:datos].gsub(" “,”%") —> con esto le pones el comodin
%
en todos los espacios
filtro = “%”+filtro+"%"
Asignatura.find :all (:conditions => [“campo_asignatura like ?”, filtro
] )
Es algo asà lo que quieres?
Luis V. wrote:
No sé si te he entendido, pero puede que esto te sirva
en el controlador :
filtro = params[:datos].gsub(" “,”%") —> con esto le pones el comodin
%
en todos los espacios
filtro = “%”+filtro+"%"
Asignatura.find :all (:conditions => [“campo_asignatura like ?”, filtro
] )
Es algo asà lo que quieres?
Antes de nada agradecer tu pronta respuesta. No obstante no es
exactamente lo que quiero. Me explico imaginad que tenéis un campo con
los apellidos y nombre. Ejemplo “PEREZ, JOSÉ”. Desde un formulario se
solicita la búsqueda “PER JOS” o “JOS PER”. Es obvio que lo que se
pretende es
buscar la ficha de PEREZ, JOSÉ a través de una solicitud simplificada
de
datos, en este caso las tres primera letras de apellido nombre y, por
supuesto obviando la coma.
Gracias,
Diego
Luis V. wrote:
Pues eso serÃa algo asà como:
condiciones = [] --> creas un array vacÃo
for dato in params[:datos].split(" ") --> lo separas por el espacio
condiciones << “nombre like (’%#{dato}%’) " —> vas poniendo las
condiciones para que filtre por el mismo campo
end
Asignatura.find :all (:conditions => condiciones.join(” and ") )
con eso deberÃa funcionarte
La solución que apuntas es la correcta. Muchas gracias por tu
colaboración.
Diego