$event->eid, ':sid' => $group_id)); $studygroup_sessions = $studygroup_sessions_query->fetchAll(); */ /* $studygroups_query = db_query("SELECT * FROM {booking_studygroup_list} WHERE booking_eventid = :eid and sid = :sid", array(':eid' => $event->eid, ':sid' => $group_id)); $studygroups = $studygroups_query->fetchAllAssoc('sid'); */ /* //set up the column headings foreach ($studygroups as $studygroup) { $header_array[] = $studygroup->sid; } $header = implode( $delimiter, $header_array ); $csv .= $header . "\n"; */ //get the list of study group session memberships $session_members_query = db_query("SELECT * FROM {booking_studygroup_mapping} WHERE booking_studygroup_id = :sid", array(':sid' => $group_id)); $session_members = $session_members_query->fetchAll(); //calculate the row data foreach ($session_members as $member) { if (! isset($data_array[$member->booking_session_id])) { $data_array[$member->booking_session_id] = array(); } // @todo // lookup the actual name and put this instead of just the node id $data_array[$member->booking_session_id][] = $member->booking_node_id; } watchdog('booking_debug', "
Study Group CSV Report\n@info
", array('@info' => print_r( $data_array, true))); $out = fopen('php://output', 'w'); //create the CSV header using just the array keys fputcsv2($out, array_keys($data_array)); //output each subsequent of the multi-dimensional array foreach ($data_array as $fields) { fputcsv2($out, $fields); } //close the output fclose($out); } /** * Function taken from http://php.net/manual/en/function.fputcsv.php#87120 */ function fputcsv2 ($fh, array $fields, $delimiter = ',', $enclosure = '"', $mysql_null = false) { $delimiter_esc = preg_quote($delimiter, '/'); $enclosure_esc = preg_quote($enclosure, '/'); $output = array(); foreach ($fields as $field) { if ($field === null && $mysql_null) { $output[] = 'NULL'; continue; } $output[] = preg_match("/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $field) ? ( $enclosure . str_replace($enclosure, $enclosure . $enclosure, $field) . $enclosure ) : $field; } fwrite($fh, join($delimiter, $output) . "\n"); }