Okay, I made this work. Figured I'd post what I did in case somebody else needs to do something similar. Here's the code I ended with:
Something to bear in mind is that if you update the database directly, you will have problems with getting the explode function to work properly because the code below explodes on \"\n\" which goes away if you update the database directly.
<?php
/**
* @version 1.0.4
* @package Mod Forme List 1.0.4
* @copyright (C) 2007
www.rsjoomla.com
* @license Commercial License,
www.pimpmyjoomla.com/license/forme.html
*/
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
$fid = intval( $params->def( 'form_id', 0 ) );
$template_module = $params->def( 'template_module', '' );
$template_formdatarow = $params->def( 'template_formdatarow', '' );
$limit = intval( $params->def( 'limit', 15 ) );
$limitstart = intval( JRequest::getVar('limitstart', 0 ) );
global $database,$limitstart;
require_once(JPATH_SITE.'/includes/pageNavigation.php');
$CONFIG = new JConfig();
$my = & JFactory::getUser();
$database =& JFactory::getDBO();
$elpath = JPATH_SITE.'/components/com_forme';
//check language
//first check global joomfish
$check = false;
if(isset($_COOKIE)) $check = $_COOKIE;
if(isset($_REQUEST)) $check = JRequest::getVar('lang',false);
//removed code suggested in post 1225
if($check){
require_once($elpath.'/languages/'.$check.'.php');
}else{
require_once($elpath.'/languages/en.php');
}
?>
<form name=\"smallGroupEntryForm\" id=\"smallGroupEntryForm\" method=\"post\" action=\"\" >
<table width=\"80%\" border=\"0\" cellpadding=\"2\" cellspacing=\"2\" class=\"forme\">
<tr>
<td valign=\"top\">Small Group Type</td><td>Day of Week</td></tr><tr>
<td valign=\"top\"><select name=\"smallGroupEntryForm[sgtype][]\" id=\"sgtype\" ><option value=\"%\">All Types </option><option value=\"Mixed\">Mixed </option>
<option value=\"Singles (19-29)\">Singles (19-29) </option><option value=\"Women\">
Women </option><option value=\"Men\">Men </option><option value=\"Young Married\">Young Married </option>
<option value=\"Plus 55\">Plus 55 </option></select></td>
<td valign=\"top\"><select name=\"smallGroupEntryForm[sgmtgdayofweek][]\" id=\"sgmtgdayofweek\" ><option value=\"Any\">Any</option><option value=\"Sunday\">
Sunday </option><option value=\"Monday\">Monday </option>
<option value=\"Tuesday\">Tuesday </option><option value=\"Wednesday\">Wednesday </option>
<option value=\"Thursday\">Thursday </option>
<option value=\"Friday\">Friday </option><option value=\"Saturday\">Saturday </option>
</select></td>
<td valign=\"top\"><input type=\"submit\" name=\"form[Search]\" value=\"Search\" id=\"Search\" /></td>
</tr>
<tr><td colspan=\"3\"> </td></tr>
</table>
</form>
<?php
$wheres = array();
$form = mosGetParam($_POST,'smallGroupEntryForm',array());
$sgtypechoice = $form[0];
$sgmtgdayofweekchoice = $form[0];
if($sgtypechoice == 'All Types') $sgtypechoice='%';
if($sgmtgdayofweekchoice == 'Any') $sgmtgdayofweekchoice='%';
if($form!='') $wheres[] = \"params LIKE '%sgtype=\".$sgtypechoice.\"%'\";
if($form!='') $wheres[] = \"params LIKE '%sgmtgdayofweek=\".$sgmtgdayofweekchoice.\"%'\";
$query = \"SELECT count(*) FROM jos_forme_data AS a WHERE a.form_id = '$fid' and \".implode( ' AND ',
$wheres );
$database->setQuery($query);
$total = $database->loadResult();
$pageNav = new mosPageNav( $total, $limitstart, $limit );
$query = \"SELECT * FROM jos_forme_data AS a WHERE a.form_id = '$fid' and \".implode( ' AND ', $wheres );
$database->setQuery($query, $pageNav->limitstart, $pageNav->limit );
$data = $database->loadObjectList();
//load fields
$database->setQuery(\"SELECT * FROM jos_forme_fields WHERE form_id = '$fid' AND published=1\");
$fields = $database->loadObjectList();
$html = '';
if($data!='') {
foreach($data as $i=>$data_row){
//parse parameters
$database->setQuery(\"SELECT * FROM jos_users WHERE id = '$data_row->uid'\");
$user = $database->loadObject();
$prm = array();
$prm = $CONFIG->sitename;
$prm = JURI::base();
$prm = $data_row->uip;
$prm = $data_row->uid;
$prm = date(_FORME_DATETIME,strtotime($data_row->date_added));
$prm = (isset($user->username)) ? $user->username : 0;
$prm = (isset($user->email)) ? $user->email : 0;
$prm = $i+$pageNav->limitstart+1;
$prm_explode = explode(\"||\n\",$data_row->params);
foreach($prm_explode as $param_row){
$param_row = explode('=',$param_row,9);
if(isset($param_row[1])){
$prm[$param_row[0]] = $param_row[1];
}else{
$prm[$param_row[0]] = '';
}
}
$temp_html = $template_formdatarow;
foreach($fields as $field){
if(!isset($prm[$field->name])) $prm[$field->name] = '';
$temp_html = str_replace('{'.$field->name.'}',$prm[$field->name],$temp_html);
}
$html .= $temp_html;
}
}
//load fields
$database->setQuery(\"SELECT * FROM jos_forme_fields WHERE published = 1 AND form_id = '$fid'\");
$fields = $database->loadObjectList();
foreach($fields as $field){
$template_module = str_replace('{'.$field->name.'}',$field->title,$template_module);
}
$template_module = str_replace('{formdata}',$html,$template_module);
echo $template_module;
if($total>$limit) echo '<div class=\"pageNav\">'.$pageNav->writePagesLinks($_SERVER.'?'.$_SERVER).'</div>';
echo '<div class=\"pageNav\">'.$pageNav->writePagesCounter().'</div>';
?>