Jump to content

Recommended Posts

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.";
} 

Link to comment
https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/
Share on other sites

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>

Link to comment
https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-936906
Share on other sites

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.

Link to comment
https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-936968
Share on other sites

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.

Link to comment
https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-937012
Share on other sites

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?

Link to comment
https://forums.phpfreaks.com/topic/177686-which-query-is-wrong/#findComment-937575
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.