By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
438,278 Members | 1,359 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 438,278 IT Pros & Developers. It's quick & easy.

Run a SQL query based on HTML drop down selection?

P: n/a
Joe
This is my HTML form:

<form method=get action="home.php">
<INPUT TYPE = "Text" VALUE = "" NAME = "title"><br>
<select name="searchby">
<option value="Title">Title</option>
<option value="Year">Year</option>
<option value="Genre">Genre</option>
<option value="Director">Director</option>
</select>

And here is the relevant PHP query:

$query = "SELECT Title, ReleaseYear, Rating, Director, RunningTime,
Genre
FROM movie
WHERE $searchby LIKE '%$title%'
GROUP BY $searchby";

Assume that "$title" is a string of text (not necessarily a movie
title). My problem seems to be that I cant use the variable $searchby
within a SQL query. Is there a workaround for this?
Oct 30 '08 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Joe wrote:
This is my HTML form:

<form method=get action="home.php">
<INPUT TYPE = "Text" VALUE = "" NAME = "title"><br>
<select name="searchby">
<option value="Title">Title</option>
<option value="Year">Year</option>
<option value="Genre">Genre</option>
<option value="Director">Director</option>
</select>

And here is the relevant PHP query:

$query = "SELECT Title, ReleaseYear, Rating, Director, RunningTime,
Genre
FROM movie
WHERE $searchby LIKE '%$title%'
GROUP BY $searchby";

Assume that "$title" is a string of text (not necessarily a movie
title). My problem seems to be that I cant use the variable $searchby
within a SQL query. Is there a workaround for this?
There should be no problem - as long as your columns are named Title,
Year, Genre and Director.

What do you get when you echo $query, and what is your error message?

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================

Oct 30 '08 #2

P: n/a
Jerry Stuckle wrote:
Joe wrote:
>This is my HTML form:

<form method=get action="home.php">
<INPUT TYPE = "Text" VALUE = "" NAME = "title"><br>
<select name="searchby">
<option value="Title">Title</option>
<option value="Year">Year</option>
<option value="Genre">Genre</option>
<option value="Director">Director</option>
</select>

And here is the relevant PHP query:

$query = "SELECT Title, ReleaseYear, Rating, Director, RunningTime,
Genre
FROM movie
WHERE $searchby LIKE '%$title%'
GROUP BY $searchby";

Assume that "$title" is a string of text (not necessarily a movie
title). My problem seems to be that I cant use the variable $searchby
within a SQL query. Is there a workaround for this?

There should be no problem - as long as your columns are named Title,
Year, Genre and Director.

What do you get when you echo $query, and what is your error message?
A couple of possibilities to try:

- does $searchby need to be in quotes? ie .... GROUP BY '$searchby'"
- depending on your php setup, you may need to use $_GET['searchby']
rather than $searchby - although this would affect your other form
parameters too.
Oct 30 '08 #3

P: n/a
On 30 Oct, 07:34, GazK <inva...@invalid.invalidwrote:
Jerry Stuckle wrote:
Joe wrote:
This is my HTML form:
<form method=get action="home.php">
<INPUT TYPE = "Text" VALUE = "" NAME = "title"><br>
<select name="searchby">
<option value="Title">Title</option>
<option value="Year">Year</option>
<option value="Genre">Genre</option>
<option value="Director">Director</option>
</select>
And here is the relevant PHP query:
$query = "SELECT Title, ReleaseYear, Rating, Director, RunningTime,
Genre
FROM movie
WHERE $searchby LIKE '%$title%'
GROUP BY $searchby";
Assume that "$title" is a string of text (not necessarily a movie
title). My problem seems to be that I cant use the variable $searchby
within a SQL query. Is there a workaround for this?
There should be no problem - as long as your columns are named Title,
Year, Genre and Director.
What do you get when you echo $query, and what is your error message?

A couple of possibilities to try:

- does $searchby need to be in quotes? ie .... GROUP BY '$searchby'"
No. Its a column name.
- depending on your php setup, you may need to use $_GET['searchby']
rather than $searchby - although this would affect your other form
parameters too.
No - register_globals is deprecated - even if it is configured as 'on'
you should write your code as if it were off.

And, even though MySQL only allows one query per function call, there
should be validation in place to prevent SQL injection.

OP's code should work.

C.
Oct 30 '08 #4

P: n/a
On Oct 29, 8:55 pm, Joe <sutclif...@gmail.comwrote:
This is my HTML form:

<form method=get action="home.php">
<INPUT TYPE = "Text" VALUE = "" NAME = "title"><br>
<select name="searchby">
<option value="Title">Title</option>
<option value="Year">Year</option>
<option value="Genre">Genre</option>
<option value="Director">Director</option>
</select>

And here is the relevant PHP query:

$query = "SELECT Title, ReleaseYear, Rating, Director, RunningTime,
Genre
FROM movie
WHERE $searchby LIKE '%$title%'
GROUP BY $searchby";

Assume that "$title" is a string of text (not necessarily a movie
title). My problem seems to be that I cant use the variable $searchby
within a SQL query. Is there a workaround for this?
The first thing I notice is that if You search by Year, the column
name will not agree with the db table. A troubleshooting technique i
use is to build the query in a variable, then echo out the
variable(the query) to make sure the right query is being run.
Hope this helps....
Nov 7 '08 #5

This discussion thread is closed

Replies have been disabled for this discussion.