TechMistress Posted October 14, 2009 Share Posted October 14, 2009 Hello, I can't seem to get this working right. Well - it looks right, but something is going wrong. It's a set of filters for events. The filter marked "type" (category) works fine - but the ones for "location" and "venue" do nothing. They don't show an error, they just don't function. Any help would be appreciated! $typeQuery = "SELECT DISTINCT eventCategory FROM dot_events where userSubmitted = '0' ORDER BY eventCategory"; $typeList = mysql_query($typeQuery) or die(mysql_error()); $numtypes = mysql_num_rows($typeList); $typeselect = "<select name=\"type\" style=\"width:110px;\">"; if($type == "All"){ $all = "selected"; $typefilter = ""; } else { if ($type <> "") { $typefilter = "AND eventCategory='" . $type . "'"; } } $typeselect .= "<option value=\"All\" " . $all . ">All Categories</option>"; while($typearray = mysql_fetch_array($typeList)){ if($typearray["eventCategory"] != "") { $selected = ""; if($typearray["eventCategory"] == $type) { $selected = "selected"; } $typeselect .= "<option value=\"" . $typearray["eventCategory"] . "\" " . $selected . ">" . substr($typearray["eventCategory"],0,15) . "</option>"; } } $typeselect .= "</select>"; #if($numtypes < 2) { # $typeselect = ""; #} $locationQuery = "SELECT DISTINCT eventLocation FROM dot_events where userSubmitted = '0' ORDER BY eventLocation"; $locationList = mysql_query($locationQuery) or die(mysql_error()); $numtypes = mysql_num_rows($locationList); $locationselect = "<select name=\"location\" style=\"width:110px;\">"; if($location == "All"){ $all = "selected"; $locationfilter = ""; } else { if ($location <> "") { $locationfilter = "AND eventLocation='" . $location . "'"; } } $locationselect .= "<option value=\"All\" " . $all . ">All Locations</option>"; while($locationarray = mysql_fetch_array($locationList)){ if($locationarray["eventLocation"] != "") { $selected = ""; if($locationarray["eventLocation"] == $location) { $selected = "selected"; } $locationselect .= "<option value=\"" . $locationarray["eventLocation"] . "\" " . $selected . ">" . $locationarray["eventLocation"] . "</option>"; } } $locationselect .= "</select>"; #if($numtypes < 2) { # $locationselect = ""; #} $venueQuery = "SELECT DISTINCT eventVenue FROM dot_events where userSubmitted = '0' ORDER BY eventVenue"; $venueList = mysql_query($venueQuery) or die(mysql_error()); $numtypes = mysql_num_rows($venueList); $venueselect = "<select name=\"venue\" style=\"width:110px;\">"; if($venue == "All"){ $all = "selected"; $venuefilter = ""; } else { if ($venue <> "") { $venuefilter = "AND eventVenue='" . $venue . "'"; } } $venueselect .= "<option value=\"All\" " . $all . ">All Venues</option>"; while($venuearray = mysql_fetch_array($venueList)){ if($venuearray["eventVenue"] != "") { $selected = ""; if($venuearray["eventVenue"] == $venue) { $selected = "selected"; } $venueselect .= "<option value=\"" . $venuearray["eventVenue"] . "\" " . $selected . ">" . $venuearray["eventVenue"] . "</option>"; } } $venueselect .= "</select>"; #if($numtypes < 2) { # $venueselect = ""; #} $dow = ""; if ($_GET['dow'] <> "") { $dow = $_GET['dow']; } if ($_POST['dow'] <> "") { $dow = $_POST['dow']; } if ($dow == 7) { $dow = ""; } $dayselect = "<select name=\"dow\" style=\"width:110px;\">"; if ($dow == "") { $selected = "selected"; } else { $selected = ""; } $dayselect .= "<option value=\"7\" " . $selected . ">All Days</option>"; if ($dow == 1) { $selected = "selected"; } else { $selected = ""; } $dayselect .= "<option value=\"1\" " . $selected . ">Monday</option>"; if ($dow == 2) { $selected = "selected"; } else { $selected = ""; } $dayselect .= "<option value=\"2\" " . $selected . ">Tuesday</option>"; if ($dow == 3) { $selected = "selected"; } else { $selected = ""; } $dayselect .= "<option value=\"3\" " . $selected . ">Wednesday</option>"; if ($dow == 4) { $selected = "selected"; } else { $selected = ""; } $dayselect .= "<option value=\"4\" " . $selected . ">Thursday</option>"; if ($dow == 5) { $selected = "selected"; } else { $selected = ""; } $dayselect .= "<option value=\"5\" " . $selected . ">Friday</option>"; if ($dow == 6) { $selected = "selected"; } else { $selected = ""; } $dayselect .= "<option value=\"6\" " . $selected . ">Saturday</option>"; if ($dow == "0") { $selected = "selected"; } else { $selected = ""; } $dayselect .= "<option value=\"0\" " . $selected . ">Sunday</option>"; $dayselect .= "</select>"; if ($dow <> "") { $day_where = " and (DATE_FORMAT(eventDate,'%w') = '$dow' or DATE_FORMAT(eventDateEnd,'%w') = '$dow')"; } else { $day_where = ""; } # keyword filter $keyword = ""; if ($_POST['keyword'] <> "Enter Keyword(s)" and $_POST['keyword'] <> "") { $keyword = $_POST['keyword']; $keywordfilter = " and (eventTitle like '%$keyword%' or eventDescription like '%$keyword%')"; } else { $keyword = "Enter Keyword(s)"; $keywordfilter = ""; } $keywordbox = "<input type=text name=keyword id=keyword value='$keyword' class='subnav' size=20px onfocus=\"this.value='';\">"; $countQuery = "select * from dot_events where userSubmitted = '0' $wheredate $day_where $typefilter $venuefilter $locationfilter $keywordfilter"; $countList = mysql_query($countQuery) or die(mysql_error()); $record_count = mysql_num_rows($countList); list($eventsperpage) = mysql_fetch_array(mysql_query("SELECT value FROM dot_settings WHERE variable='events_per_page'")) or die(mysql_error()); if($eventsperpage == "All"){ $limit = ""; $eventsperpage = $record_count; } else { $limit = "limit " . $start . ", " . ($eventsperpage + 1); } list($sort) = mysql_fetch_array(mysql_query("SELECT value FROM dot_settings WHERE variable='sort'")); if ($sort == "date") { $order_it = "eventDate, eventTitle"; } else { $order_it = "eventTitle"; } $eventQuery = "select * from dot_events where userSubmitted = '0' $wheredate $day_where $typefilter $venuefilter $locationfilter $keywordfilter order by $order_it " . $limit; # echo $eventQuery . "<br>"; $eventList = mysql_query($eventQuery) or die(mysql_error()); $row_count = mysql_num_rows($eventList); if ($record_count > 0) { $navigate = "Events " . ($start + 1) . " - "; if ($row_count > $eventsperpage) { $navigate .= ($start + $eventsperpage); } else { $navigate .= ($start + $row_count); } $navigate .= " of " . $record_count; if ($start > 0) { $navigate = "<a href=?month=$month&year=$year&start=" . ($start - $eventsperpage) . ">< Prev</a> " . $navigate; } if (($start + $eventsperpage) < $record_count) { $navigate .= " <a href=?month=$month&year=$year&start=" . ($start + $eventsperpage) . ">Next ></a>"; } } else { $navigate = "There are no events to display."; } Quote Link to comment https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/ Share on other sites More sharing options...
PFMaBiSmAd Posted October 14, 2009 Share Posted October 14, 2009 So, when you do a "view source" of the form in your browser, what exactly is present in the HTML for the select menus? Quote Link to comment https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-936881 Share on other sites More sharing options...
TechMistress Posted October 14, 2009 Author Share Posted October 14, 2009 The html calls on the queries like so: # filter settings $fil_query = "select variable, value from cpt_settings where variable like 'filter_%'"; $fil_rs = mysql_query($fil_query); $filters = array(); $col_ct = 0; while ($fil_row = mysql_fetch_array($fil_rs)) { $filters[$fil_row['variable']] = $fil_row['value']; if ($fil_row['value'] == "Y") { $col_ct++; } } ?> <table border="0" cellspacing="0" cellpadding="0"> <form name="s2" method="post" action=""> <tr><td colspan="<?=$col_ct ?>" align="right" class="subnav"> <p align="left"><strong>Filter Events by</strong>: </td></tr> <tr valign="top"> <? if($filters['filter_cat'] == "Y") { ?> <td align="left" class="subnav"><?=$typeselect ?></td> <? } ?> <? if($filters['filter_loc'] == "Y") { ?> <td align="left" class="subnav"><?=$locationselect ?></td> <? } ?> <? if($filters['filter_ven'] == "Y") { ?> <td align="left" class="subnav"><?=$venueselect ?></td> <? } ?> <? if ($col_ct > 3) { ?></tr><tr><? } ?> <? if($filters['filter_day'] == "Y") { ?> <td align="left" class="subnav"><?=$dayselect ?></td> <? } ?> <? if($filters['filter_month'] == "Y") { ?> <td align="left" class="subnav"><?=$monthselect ?></td> <? } ?> <? if($filters['filter_keyword'] == "Y") { ?> <td align="left" class="subnav"><?=$keywordbox ?></td> <? } ?> </tr> <tr><td colspan="<?=$col_ct ?>"><input type=submit value="Go"></td></tr> </form> </table> Quote Link to comment https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-936906 Share on other sites More sharing options...
PFMaBiSmAd Posted October 14, 2009 Share Posted October 14, 2009 If that is what the "view source" of your form page looks like, then your web server is not setup to use short open php tags <? You should only use full open php tags to avoid wasting your time every time you switch to a web server where the short open tags are not enabled. Quote Link to comment https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-936968 Share on other sites More sharing options...
TechMistress Posted October 14, 2009 Author Share Posted October 14, 2009 No, that isn't the view source - that is the actual code. View Source looks normal - has all of the entries correctly drawn from the database. The form has several drop-downs for venue, location, category, month, etc. The dropdown for category type works and then brings up just the events for that category. However, when I use the location or venue dropdowns, nothing happens, they reset to "all" and all events are listed. Quote Link to comment https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-937012 Share on other sites More sharing options...
TechMistress Posted October 15, 2009 Author Share Posted October 15, 2009 I poured through the code, and still can't find why all the dropdown filters don't work. When I ran debug on a local machine, I just get a "mysql_fetch_array(): supplied argument is not a valid..." error for the following line: <? $i = 1;while (($events = mysql_fetch_array($eventList)) && $i <= $eventsperpage) {?> Although I don't get this error on the live site. Any clues? Quote Link to comment https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-937575 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.