How can pass the input value in the find_by_sql() function?

1) "please help me immediately" is rude. You think people say "oh i know the answer but i will wait with the answer for 3 days?" People will help if they can.

2) <%= text_field "movie", "id" %> will compile to: <input type="text" id="movie_id" name="movie[id]" value="<%= @movie.id %>" /> (look at your generated HTML) so your parameter is params[:movie][:id] and NOT params[:id]

=> @report = Movie.find_by_sql([query, params[:movie][:id]])

3) why don't you just use:

@report = Movie.find(params[:movie][:id])

that will have the same result, plus it gives you the advantages of AR collections, which find_by_sql doesn't

1) as i already said, it is not params[:id], it's params[:movie][:id]     so, as i already said, try Movie.find(params[:movie][:id])

2) you don't need the @movie.id value. if it's not there, it won't be filled in the text_field, but that's fine. it's just part of how the FormTagHelpers build the Tags.    look at your generated HTML

Ruhul Amin wrote:

My main missionis to search a movie by its name. so please tell me how can i use to write the sql query using "like"

The books /Agile Development with Rails/ and /Rails Recipes/ cover that. Please consider getting one, or both. They will teach this trick:

    raise params.inspect

Write that into an action, and it will show you what parameters the view sends to the action. Then take it out!

suppose i want to search all movie whose name begin with "mission"

        @reports = Movie.find(:all, :conditions => ['name like ?', "%mission%"])

Now replace mission with a variable, such as "%#{search_term}%".