From afb276669e17fa1bb1087a02eb486801c8da6cd0 Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Tue, 23 Jun 2009 06:54:32 +0000 Subject: [PATCH] --- content/statistik/bama_stromanalyse.php | 34 ++-- content/statistik/bama_studentenstrom.svg.php | 190 ++++++++++++++++++ 2 files changed, 210 insertions(+), 14 deletions(-) create mode 100644 content/statistik/bama_studentenstrom.svg.php diff --git a/content/statistik/bama_stromanalyse.php b/content/statistik/bama_stromanalyse.php index 3dd99c657..0e29c3001 100644 --- a/content/statistik/bama_stromanalyse.php +++ b/content/statistik/bama_stromanalyse.php @@ -55,8 +55,8 @@ if($studiensemester_kurzbz != -1) $summe=0; $rest=0; - //Studiengänge, die zuvor abgeschlossen wurden - $qry_master="SELECT DISTINCT count(*)as count ,studiengang_kz, typ, tbl_studiengang.bezeichnung as bez + //Studieng�nge, die zuvor abgeschlossen wurden + $qry_master="SELECT DISTINCT count(*)as count ,studiengang_kz, typ, tbl_studiengang.bezeichnung as bez, tbl_studiengang.kurzbz FROM public.tbl_person JOIN public.tbl_prestudent ON(public.tbl_person.person_id=public.tbl_prestudent.person_id) JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz) @@ -68,9 +68,9 @@ if($studiensemester_kurzbz != -1) AND studiensemester_kurzbz='".$studiensemester_kurzbz."' AND rolle_kurzbz='Student' AND ausbildungssemester='1') - GROUP BY studiengang_kz, typ, public.tbl_studiengang.bezeichnung ORDER BY tbl_studiengang.bezeichnung, studiengang_kz"; + GROUP BY studiengang_kz, typ, public.tbl_studiengang.bezeichnung, tbl_studiengang.kurzbz ORDER BY count desc"; - //Anzahl der Studenten ohne Abschluß auf der FHTW + //Anzahl der Studenten ohne Abschluþ auf der FHTW /*$qry_rest="SELECT count(*) as rest FROM public.tbl_person JOIN public.tbl_prestudent ON(public.tbl_person.person_id=tbl_prestudent.person_id) JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) @@ -105,7 +105,9 @@ if($studiensemester_kurzbz != -1) $row_anzahl=pg_fetch_object($result_anzahl); $ausgabe .= ""; - $ausgabe .= "
   Studiengang: $row_stg->studiengang_kz, $row_stg->bezeichnung$row_anzahl->anzahl Studierende im 1.Sem.
"; + $ausgabe .= "   "; + $ausgabe .= ""; + $ausgabe .= "Studiengang: $row_stg->studiengang_kz, $row_stg->bezeichnung (".strtoupper($row_stg->typ.$row_stg->kurzbz).")$row_anzahl->anzahl Studierende im 1.Sem."; $ausgabe .= ""; $ausgabe .= ""; $ausgabe .= ""; @@ -152,9 +154,9 @@ if($studiensemester_kurzbz != -1) $summe=0; $rest=0; - //Master-Studiengänge, die noch besucht wurden - $qry_bachelor="SELECT DISTINCT count(*)as count, studiengang_kz, typ, bezeichnung as bez FROM - (SELECT DISTINCT ON(public.tbl_person.person_id, studiengang_kz) studiengang_kz,typ, tbl_studiengang.bezeichnung + //Master-Studiengänge, die noch besucht wurden + $qry_bachelor="SELECT DISTINCT count(*)as count, studiengang_kz, typ, bezeichnung as bez, kurzbz FROM + (SELECT DISTINCT ON(public.tbl_person.person_id, studiengang_kz) studiengang_kz,typ, tbl_studiengang.bezeichnung, tbl_studiengang.kurzbz FROM public.tbl_person JOIN public.tbl_prestudent ON(public.tbl_person.person_id=public.tbl_prestudent.person_id) JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz) @@ -165,7 +167,7 @@ if($studiensemester_kurzbz != -1) WHERE studiengang_kz='".$row_stg->studiengang_kz."' AND rolle_kurzbz='Absolvent' AND (studiensemester_kurzbz='".$studiensemester_kurzbz."' OR studiensemester_kurzbz='SS".substr($studiensemester_kurzbz,-4)."') )) as b - GROUP BY studiengang_kz, typ, bezeichnung ORDER BY bezeichnung, studiengang_kz"; + GROUP BY studiengang_kz, typ, bezeichnung, kurzbz ORDER BY count desc"; //Anzahl der Studenten ohne weitere Masterstudien am FHTW /*$qry_rest="SELECT count(*) as anzahl FROM public.tbl_person @@ -198,7 +200,9 @@ if($studiensemester_kurzbz != -1) $ausgabe .= "
KzTyp
"; $ausgabe .= ""; - $ausgabe .= ""; + $ausgabe .= ""; $ausgabe .= "
   Studiengang: $row_stg->studiengang_kz, $row_stg->bezeichnung   "; + $ausgabe .= ""; + $ausgabe .= "Studiengang: $row_stg->studiengang_kz, $row_stg->bezeichnung (".strtoupper($row_stg->typ.$row_stg->kurzbz).")$row_anzahl->anzahl Absolventen
"; $ausgabe .= ""; $ausgabe .= ""; @@ -243,14 +247,14 @@ echo ' -Studentenströme +BaMa Stromanalyse - + -

Studentenströme

+

BaMa Stromanalyse

Wählen Sie bitte nachfolgend ein Wintersemester aus.'; $htmlstr .= "\n"; @@ -276,5 +280,7 @@ $htmlstr .= "\n"; echo $htmlstr; echo $ausgabe; -echo "Anmerkungen:

Doppelvorkommen von Studierenden fuehrt zu Verfaelschungen bei der Anzahl der 'Externen':
- Absolventen bzw. Studenten in verschiedenen Studiengaengen.
- Doppelteintragungen: z.B. nach Abbruch neu inskribiert"; +echo "Anmerkungen:

Doppelvorkommen von Studierenden führt zu Verfaelschungen bei der Anzahl der 'Externen':
+- Absolventen bzw. Studenten in verschiedenen Studiengaengen.
+- Doppelteintragungen: z.B. nach Abbruch neu inskribiert"; ?> \ No newline at end of file diff --git a/content/statistik/bama_studentenstrom.svg.php b/content/statistik/bama_studentenstrom.svg.php new file mode 100644 index 000000000..0c9ab4d1d --- /dev/null +++ b/content/statistik/bama_studentenstrom.svg.php @@ -0,0 +1,190 @@ +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Simane-Sequens + */ + require_once('../../vilesci/config.inc.php'); + require_once('../../include/ezcomponents/Base/src/ezc_bootstrap.php'); + $stsem=0; + $studiengang_kz=0; + + if(!$conn = pg_connect(CONN_STRING)) + die('Fehler beim der Datenbankverbindung'); + + if(!$graph = new ezcGraphLineChart()) + die('Fehler beim Initialisieren von EZComponents'); + + $stsem = $_GET['stsem']; + $studiengang_kz = $_GET['studiengang_kz']; + $typ = $_GET['typ']; + $studiengang_kurzbz = strtoupper($typ.$_GET['kurz']); + $graph->title = "5-Jahresansicht Stg: ".$studiengang_kurzbz; + $hlp=array(); + $keys=array(); + $summe=array(); +if(trim($typ)=="m") +{ + FOR($i=0;$i<5;$i++) + { + $summe[(substr(trim($stsem),-4)-$i)] = 0; + //Anzahl pro Studiengang + $qry = "SELECT DISTINCT count(*)as count, studiengang_kz, typ||kurzbz as stgkurz + FROM public.tbl_person JOIN public.tbl_prestudent ON(public.tbl_person.person_id=public.tbl_prestudent.person_id) + JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE rolle_kurzbz='Absolvent' AND typ!='m' + AND public.tbl_person.person_id IN(SELECT public.tbl_person.person_id FROM public.tbl_person + JOIN public.tbl_prestudent ON(public.tbl_person.person_id=public.tbl_prestudent.person_id) + JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) + WHERE studiengang_kz=".$studiengang_kz." + AND studiensemester_kurzbz='WS".(substr(trim($stsem),-4)-$i)."' + AND rolle_kurzbz='Student' + AND ausbildungssemester='1') + GROUP BY studiengang_kz, typ, public.tbl_studiengang.bezeichnung, public.tbl_studiengang.kurzbz ORDER BY stgkurz"; + //echo $qry."
--
"; + if($result = pg_query($conn, $qry)) + { + while($row = pg_fetch_object($result)) + { + $hlp[strtoupper($row->stgkurz)][(substr(trim($stsem),-4)-$i)]=$row->count; + $summe[(substr(trim($stsem),-4)-$i)] = $summe[(substr(trim($stsem),-4)-$i)] + $row->count; + $keys[$i] = (substr(trim($stsem),-4)-$i); + } + } + //Gesamtanzahl + $qry_anzahl="SELECT count(*) as anzahl FROM public.tbl_person + JOIN public.tbl_prestudent ON(public.tbl_person.person_id=public.tbl_prestudent.person_id) + JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) + WHERE studiengang_kz=".$studiengang_kz." + AND studiensemester_kurzbz='WS".(substr(trim($stsem),-4)-$i)."' + AND rolle_kurzbz='Student' + AND ausbildungssemester='1'"; + if($result_anzahl=pg_query($conn, $qry_anzahl)) + { + if($row_anzahl=pg_fetch_object($result_anzahl)) + { + $hlp['extern'][(substr(trim($stsem),-4)-$i)]= $row_anzahl->anzahl - $summe[(substr(trim($stsem),-4)-$i)]; + if($hlp['extern'][(substr(trim($stsem),-4)-$i)]<0) + $hlp['extern'][(substr(trim($stsem),-4)-$i)]=0; + $hlp['gesamt'][(substr(trim($stsem),-4)-$i)]= $row_anzahl->anzahl; + if($hlp['gesamt'][(substr(trim($stsem),-4)-$i)]<0) + $hlp['gesamt'][(substr(trim($stsem),-4)-$i)]=0; + $keys[$i] = (substr(trim($stsem),-4)-$i); + } + } + } + //'0'-er ergänzen + FOR ($i=0;$i<5;$i++) + { + + foreach(array_keys($hlp)as $jeder) + { + if(empty($hlp[$jeder][(substr(trim($stsem),-4)-$i)])) + { + $hlp[$jeder][(substr(trim($stsem),-4)-$i)]='0'; + $keys[$i] = (substr(trim($stsem),-4)-$i); + } + + } + } +} +if(trim($typ)=="b") +{ + FOR($i=0;$i<5;$i++) + { + $summe[(substr(trim($stsem),-4)-$i)] = 0; + //Anzahl pro Studiengang + $qry = "SELECT DISTINCT count(*)as count, studiengang_kz, typ||kurzbz as stgkurz FROM + (SELECT DISTINCT ON(public.tbl_person.person_id, studiengang_kz) studiengang_kz,typ, tbl_studiengang.bezeichnung, tbl_studiengang.kurzbz + FROM public.tbl_person JOIN public.tbl_prestudent ON(public.tbl_person.person_id=public.tbl_prestudent.person_id) + JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE rolle_kurzbz='Student' AND typ='m' + AND public.tbl_person.person_id IN(SELECT public.tbl_person.person_id FROM public.tbl_person + JOIN public.tbl_prestudent ON(public.tbl_person.person_id=public.tbl_prestudent.person_id) + JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) + WHERE studiengang_kz='".$studiengang_kz."' + AND rolle_kurzbz='Absolvent' + AND (studiensemester_kurzbz='WS".(substr(trim($stsem),-4)-$i)."' OR studiensemester_kurzbz='SS".(substr(trim($stsem),-4)-$i)."') )) as b + GROUP BY studiengang_kz, typ, bezeichnung, kurzbz ORDER BY stgkurz"; + //echo $qry."
--
"; + if($result = pg_query($conn, $qry)) + { + while($row = pg_fetch_object($result)) + { + $hlp[strtoupper($row->stgkurz)][(substr(trim($stsem),-4)-$i)]=$row->count; + $summe[(substr(trim($stsem),-4)-$i)] = $summe[(substr(trim($stsem),-4)-$i)] + $row->count; + $keys[$i] = (substr(trim($stsem),-4)-$i); + } + } + //Gesamtanzahl + $qry_anzahl="SELECT count(*) as anzahl FROM public.tbl_person + JOIN public.tbl_prestudent ON(public.tbl_person.person_id=public.tbl_prestudent.person_id) + JOIN public.tbl_prestudentrolle ON(public.tbl_prestudent.prestudent_id=public.tbl_prestudentrolle.prestudent_id) + WHERE studiengang_kz='".$studiengang_kz."' + AND rolle_kurzbz='Absolvent' + AND (studiensemester_kurzbz='WS".(substr(trim($stsem),-4)-$i)."' OR studiensemester_kurzbz='SS".(substr(trim($stsem),-4)-$i)."')"; + if($result_anzahl=pg_query($conn, $qry_anzahl)) + { + if($row_anzahl=pg_fetch_object($result_anzahl)) + { + $hlp['extern'][(substr(trim($stsem),-4)-$i)]= $row_anzahl->anzahl - $summe[(substr(trim($stsem),-4)-$i)]; + if($hlp['extern'][(substr(trim($stsem),-4)-$i)]<0) + $hlp['extern'][(substr(trim($stsem),-4)-$i)]=0; + $hlp['gesamt'][(substr(trim($stsem),-4)-$i)]= $row_anzahl->anzahl; + if($hlp['gesamt'][(substr(trim($stsem),-4)-$i)]<0) + $hlp['gesamt'][(substr(trim($stsem),-4)-$i)]=0; + $keys[$i] = (substr(trim($stsem),-4)-$i); + } + } + } + //'0'-er ergänzen + FOR ($i=0;$i<5;$i++) + { + + foreach(array_keys($hlp)as $jeder) + { + if(empty($hlp[$jeder][(substr(trim($stsem),-4)-$i)])) + { + $hlp[$jeder][(substr(trim($stsem),-4)-$i)]='0'; + $keys[$i] = (substr(trim($stsem),-4)-$i); + } + + } + } +} + //var_dump($hlp); + //die; + $graph->xAxis->axisLabelRenderer = new ezcGraphAxisRotatedLabelRenderer(); + $graph->xAxis->axisLabelRenderer->angle = 0; + + if(empty($keys)) + die('Keine Daten vorhanden'); + asort($keys, SORT_NUMERIC); + + foreach($hlp as $status=>$data) + { + reset($keys); + ksort($data, SORT_NUMERIC); + $graph->data[$status] = new ezcGraphArrayDataSet( $data ); + } + + $graph->renderToOutput( 500, 500); +?> \ No newline at end of file
Kz