', $col) ) FROM $table JOIN ( SELECT DISTINCT {$kind}_id FROM llsjnpp ) AS tmp USING ({$kind}_id) EOQ ); } function get_ids($filters) { $ids = array(); foreach ($filters as $name => $filter) { $ids[$name] = get_ids_helper($filter['kind'], $filter['table']); } return $ids; } function get_checkboxen($filters, $ids) { $checkboxen = array(); foreach ($filters as $name => $filter) { $checkboxen[$name] = get_checkboxen_helper($filter['kind'], $filter['col'], $filter['table'], $ids[$name]); } return $checkboxen; } function get_sg_helper(&$sg, $kind, $col, $name, $singular) { if (!isset($_GET['group_'.$kind])) { $sg['select'] .= ', '.$col.' '.$singular; $sg['group_by'] .= ', '.$kind.'_id'; } else { $sg['select'] .= ', GROUP_CONCAT(DISTINCT '.$col.' ORDER BY '.$col.') '.$name; } } function get_sg($filters) { $sg = array('select' => '', 'group_by' => ''); foreach ($filters as $name => $filter) { get_sg_helper($sg, $filter['kind'], isset($filter['col_link'])?$filter['col_link']:$filter['col'], $name, $filter['singular']); } return $sg; } $filters = array( 'ljs' => array('kind' => 'lj', 'col' => 'lj', 'table' => 'lj', 'singular' => 'lrj'), 'types' => array('kind' => 'opl', 'col' => 'opl', 'table' => 'opl', 'singular' => 'type'), 'profielen' => array('kind' => 'somprofiel', 'col' => 'somprofiel', 'table' => 'somprofielen', 'singular' => 'profiel'), 'examenjaren' => array('kind' => 'exjr', 'col' => 'exjr', 'table' => 'exjr', 'singular' => 'examenjr'), 'schooljaren' => array('kind' => 'year', 'col' => 'CONCAT(SUBSTRING(year_long, 3, 2), SUBSTRING(year_long, 8, 2))', 'col_link_BAD' => 'CONCAT(\'\', SUBSTRING(year_long, 3, 2), SUBSTRING(year_long, 8, 2), \'\')', 'table' => $kldv.'.years', 'singular' => 'schooljr'), ); $ids = get_ids($filters); $checkboxen = get_checkboxen($filters, $ids); $ids = implode(' AND ', $ids); $sg = get_sg($filters); if (!isset($_GET['weergave']) || $_GET['weergave'] == 'eenvoudig') { $simple = '_simple'; } else if ($_GET['weergave'] == 'compleet') { $simple = ''; } else die("impossible\n"); if (!isset($_GET['sorteren']) || $_GET['sorteren'] == 'lljaren') { $sorteren = 'lljaren DESC'; } else if ($_GET['sorteren'] == 'pakket') { $sorteren = 'pakket'.$simple; } else if ($_GET['sorteren'] == 'tot') { $sorteren = 'tot DESC'; } else if ($_GET['sorteren'] == 'lln') { $sorteren = 'lln DESC'; } else die("impossible\n"); $res = mdb2_query($db, << $filter) { echo('
Filter '.$label.': '.$filter.".\n"); } } function show_groepeer($filters) { echo('
Groepeer: '); foreach ($filters as $name => $filter) { echo(' '.$filter['singular'].', '); } } check_admin(); html_start(); ?>
voorbeeldanalyse HAVO NT
Pakketweergave: '); echo(' eenvoudig, '); echo(' compleet'); echo('
Sorteren: '); echo(' lljaren, '); echo(' pakket, '); echo(' tot'); echo(' lln'); ?>