Good Morning PHP-DB Listers,
I have a PHP GUI in which a select box gets populated by a query of a
MySQL DB for all CD's by all artists when the page is first opened. I am
now trying to implement
the same query but with a WHERE clause that filters the returned CD's to
be displayed in the same select box according to the artist selected via a
group of checkboxes (one per artist). The problem so far is that if I try
to implement some flow control (if checbox one is selected, append "where
artist='hendrix' to the select all CDs query, mysql_query() etc...), I get
an error message saying that the query string is empty. So I am looking
for some advice about how to implement the logic of having the same select
box display the results of different but related queries.
For example,
$query_1 = "SELECT CD_title FROM CDs order by CD_title";
$result_1 = mysql_query($query_1) or die("Can't select CD_title from CDs"
. mysql_error());
while($row=mysql_fetch_array($result_1, MYSQL_BOTH)) ..etc...
works just fine.
But if I try to use some flow control to alter which query statement is
assigned to $query_1...
if(checkbox one is selected)
{
$query_1 = "SELECT CD_title FROM CDs WHERE artist_name = 'Hendrix'
order by CD_title";
}
elseif(no checkboxes are checked)
{
$query_1 = "SELECT CD_title FROM CDs order by CD_title";
}
$result_1 = mysql_query($query_1) or die("Can't select CD_title from CDs"
. mysql_error());
while($row=mysql_fetch_array($result_1, MYSQL_BOTH)) ..etc...
produces the error message stated above ... that the query string is
empty. I've also tried to duplicate the "mysql_query($query_1) or
die()..." within each section of the IF group, but then the select box
does not get populated at all.
I am using session variables, and I'm certain that the checkboxes are
correctly assigning the necessary values to the variables associated with
them because I am echo'ing the variables and I can see the values that
they have.
And when I run the query with the where clause in the MySQL client, it
works just fine.
I'm guessing I'm missing something fairly simple because this type of
functionality must have been implemented before.
Thanks for reading the rather long question.
David