RAILS question, sql statements

B

bnews

hey, i want to created an sql statement with rails for a search engine

this is the code, u can search on first name and last name

firm_id = @session[:user].id
#last_name = params[:employee][:last_name]
#first_name = params[:employee][:first_name]
last_name = "Creytens"
first_name = "b"
@employee_pages, @employees = paginate :)employee, :conditions =>
["firm_id = ? and first_name like ? and last_name like ?" , firm_id,
first_name, last_name] , :eek:rder_by => "last_name ASC", :per_page => 10)


i have a few question:

-how can i make, that the user doesnt need to fill in the full name, just
1st or a couple of letters, in php i can use the % ==> '%first_name%', seems
not to work here

-the search engine is on the same page as the results, but the first time
the parameters arent there, so i just want to show all employees, if the
parameters are there then i show those.
How can i check if the parameters are there, in php u can u isset(
*_POST["last_name"] ), what is that here?
 
B

Bruno Celeste

Hi :)
i have a few question:

-how can i make, that the user doesnt need to fill in the full name, just
1st or a couple of letters, in php i can use the % =3D=3D> '%first_name%'= , seems
not to work here

You can use:

@employee_pages, @employees =3D paginate :)employee, :conditions =3D>
["firm_id =3D ? and first_name like '%#{first_name}%' and last_name like
'%#{first_name}%'" , firm_id, :eek:rder_by =3D> "last_name ASC", :per_page
=3D> 10)

-the search engine is on the same page as the results, but the first time
the parameters arent there, so i just want to show all employees, if the
parameters are there then i show those.
How can i check if the parameters are there, in php u can u isset(
*_POST["last_name"] ), what is that here?

if @params['last_name']
#parameter given
else
#parameter not given
end
 
P

Paul

You could also just add the % characters to the passed value and use
the ? in the sql statement.

q_firstname = '%' + first_name + '%'
q_lastname = '%' + last_name + '%'

@employee_pages, @employees = paginate :)employee, :conditions =>
["firm_id = ? and first_name like ? and last_name like ?" , firm_id,
q_firstname, q_lastname] , :eek:rder_by => "last_name ASC", :per_page =>
10)

This way, the value passed in as first_name and last_name will be
escaped properly.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top