-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbiologischewerte.php
308 lines (262 loc) · 15.5 KB
/
biologischewerte.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
<!--Auf dieser Seite werden die Ergebnisse/Daten der Schilfvermessung, also der biologischen Parameter aus der Datenbank ausgegeben.
Jedoch nur die Mittelwerte aus ca. 50 Untersuchungen an einem Standort pro Datum. Zu den 50 Einzelergebnissen kommt man durch einen Link.-->
<div id="rahmenInhaltFuerScrolltabelle" style="width:950px;">
<h1 style="text-align:center;">Schilfvermessung Mittelwerte</h1>
<!--Sortieroptionen, die nach Anklicken in der URL in orderby gespeichert werden-->
<p>Sortieren nach Standort (
<a href="?site=biologischewerte&orderby=1">flussaufwärts</a> /
<a href="?site=biologischewerte&orderby=2">flussabwärts</a> ) oder Datum (
<a href="?site=biologischewerte&orderby=3">aufsteigend</a> /
<a href="?site=biologischewerte&orderby=4">absteigend</a> )
</p>
<?php
//Datenbankanbindung
include('datenbank.php');
//Wenn das Attribut "orderby" in der URL gesetzt wurde, dann wird dies in einer Variablen gespeichert. In "orderby" wird festgelegt, wonach die Daten sortiert werden sollen: entweder Standort (1=flussaufwärts, 2=flussabwärts) oder Datum(3=vorwärts, 4=rückwärts)
if ( isset($_GET['orderby']) ) {
$orderby=$_GET['orderby'];
}else{
$orderby="1"; //default Wert: flussaufwärts
}
/*
* Datenbankanfragen: Alle Parameter aus biologischeMittelwerte mit Sortierung.
* "MONTH(Datum) AS Monat" liefert den Monat der Untersuchung, um später zu unterscheiden,
* ob im Frühjahr oder im Herbst gemessen wurde.
* Es wird je nach $orderby eine Anfrage gestellt:
* Standort (1=flussaufwärts, 2=flussabwärts) oder Datum(3=vorwärts, 4=rückwärts)
*/
/*FLUSSAUFWÄRTS*/
if($orderby=="1"){
//Die Ergebnisse werden nach dem Standort sortiert mithilfe der StandortID, die flussabwärts steigt, deshalb wird sie absteigend sortiert; dann nach dem Datum
$anfrage = 'SELECT Standort, Datum, LaengeUnterWasser, LaengeUeberWasser, LaengeGesamt, DickeUnten, DickeMitte, Blattbreite,
Blattlaenge, Rispenlaenge, Blattzahl, Nodienzahl, MONTH(Datum) AS Monat
FROM biologischeMittelwerte
ORDER BY StandortID DESC, Datum DESC';
}
/*FLUSSABWÄRTS*/
else if($orderby=="2"){
//Die Ergebnisse werden nach dem Standort sortiert mithilfe der StandortID, die flussabwärts steigt; dann nach dem Datum
$anfrage = 'SELECT Standort, Datum, LaengeUnterWasser, LaengeUeberWasser, LaengeGesamt, DickeUnten, DickeMitte, Blattbreite,
Blattlaenge, Rispenlaenge, Blattzahl, Nodienzahl, MONTH(Datum) AS Monat
FROM biologischeMittelwerte
ORDER BY StandortID ASC, Datum DESC
';
}
/*ZEITLICH VORWÄRTS*/
else if($orderby=="3"){
$anfrage='SELECT Standort, Datum, LaengeUnterWasser, LaengeUeberWasser, LaengeGesamt, DickeUnten, DickeMitte, Blattbreite,
Blattlaenge, Rispenlaenge, Blattzahl, Nodienzahl, MONTH(Datum) AS Monat
FROM biologischeMittelwerte
ORDER BY Datum ASC
';
}
/*ZEITLICH RÜCKWÄRTS*/
else if($orderby=="4"){
$anfrage='SELECT Standort, Datum, LaengeUnterWasser, LaengeUeberWasser, LaengeGesamt, DickeUnten, DickeMitte, Blattbreite,
Blattlaenge, Rispenlaenge, Blattzahl, Nodienzahl, MONTH(Datum) AS Monat
FROM biologischeMittelwerte
ORDER BY Datum DESC
';
}
$ergebnis = mysql_query($anfrage)
or die('Anfrage schlug fehl: '.mysql_error());
//Damit die Ausgabetabelle einen festen Tabellenkopf und einen scrollbaren Tabellenkörper hat, wird zunächst nur der Tabellenkopf erzeugt ohne Tabellenkörper
//Hier werden in einer zweiten Zeile die Einheiten der gemessenen Parameter angezeigt
echo('
<table class="tabellesuchergebnissebio">
<tr>
<th style="width:120px;background:#BDBDBD;">Standort</th>
<th style="width:80px;background:#BDBDBD;">Datum</th>
<th style="width:60px;background:#BDBDBD;" title="Halmlänge unter Wasser">HL <sub>u</sub> W</th>
<th style="width:60px;background:#BDBDBD;" title="Halmlänge über Wasser">HL <sup>ü</sup> W</th>
<th style="width:60px;background:#BDBDBD;" title="Halmlänge gesamt">HL <sub>ges.</sub> </th>
<th style="width:60px;background:#BDBDBD;" title="Halmdicke unten">HD <sub>u</sub></th>
<th style="width:60px;background:#BDBDBD;" title="Halmdicke mitte">HD <sub>m</sub></th>
<th style="width:60px;background:#BDBDBD;" title="Blattbreite">Bb</th>
<th style="width:60px;background:#BDBDBD;" title="Blattlänge">Bl</th>
<th style="width:60px;background:#BDBDBD;" title="Rispenlänge">Rl</th>
<th style="width:60px;background:#BDBDBD;" title="Blattzahl">Bz</th>
<th style="width:60px;background:#BDBDBD;" title="Nodienzahl">Nz</th>
<th style="width:20px;background:#BDBDBD;" title="Zu den Einzelergebnissen"><div id="gedreht">Einzel- <br>ergebnisse</div></th>
</tr>
<tr class="einheiten">
<td></td>
<td></td>
<td>cm</td>
<td>cm</td>
<td>cm</td>
<td>mm</td>
<td>mm</td>
<td>cm</td>
<td>cm</td>
<td>cm</td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
<style>
/* Die Beschriftung "Zu den Einzelergebnissen" ist um 270° gedreht, damit sie besser in die Tabelle passt*/
#gedreht{
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
-webkit-transform: rotate(270deg);
transform: rotate(270deg);
font-size:6pt;
}
</style>');
/* An dieser Stelle wird der Tabellenkopf nocheinmal erzeugt,
* aber dann über CSS mit .tablebody height:0px; dann ausgeblendet,
* sodass nur der Tabellenkörper sichtbar wird.
* Dieser hat dann aber dieselbe Formation(Breite ...) wird der echte Tabellenkopf.
* Die Breite von 92.9% ist entscheidend, da der übergeordnete Container eine feste Breite hat und somit die Scrollleiste an der richtigen Stelle positioniert wird
*/
echo('
<div class="tablebody" style="width:97.8%;">
<table class="tabellesuchergebnissebio" >
<thead>
<tr>
<th style="width:120px;"></th>
<th style="width:80px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:60px;"></th>
<th style="width:20px;"></th>
</tr>
</thead>');
//Tabellenkörper
echo('<tbody>');
// Hier wird der Tablebody mit den Daten gefüllt
while ( $zeile = mysql_fetch_assoc($ergebnis)) {
//Runden der Datenbankergebnisse auf bestimmte Anzahl an Nachkommastellen mit round([Wert], [Anzahl der Nachkommastellen])
$zeile['LaengeUnterWasser']= round($zeile['LaengeUnterWasser'],3);
$zeile['LaengeUeberWasser']= round($zeile['LaengeUeberWasser'],3);
$zeile['LaengeGesamt']= round($zeile['LaengeGesamt'],3);
$zeile['DickeUnten']= round($zeile['DickeUnten'],3);
$zeile['DickeMitte']= round($zeile['DickeMitte'],3);
$zeile['Blattbreite']= round($zeile['Blattbreite'],3);
$zeile['Blattlaenge']= round($zeile['Blattlaenge'],3);
$zeile['Rispenlaenge']= round($zeile['Rispenlaenge'],3);
$zeile['Blattzahl']= round($zeile['Blattzahl'],3);
$zeile['Nodienzahl']= round($zeile['Nodienzahl'],3);
// Da in der Datenbank keine Umlaute und ß gespeichert werden, wird der Standort "Wallbrechtbrücke" immer mit "ue" gespeichert und dann nachträglich hier korrigiert, ebenso Gro"ß" Sarau mit "ss"
if($zeile['Standort']=='Wallbrechtbruecke'){
$zeile['Standort']='Wallbrechtbrücke';
}
if($zeile['Standort']=='Gross Sarau'){
$zeile['Standort']='Groß Sarau';
}
if($zeile['Standort']=='Wallbrechtbrücke' && $zeile['Datum']=='2013-10-17'){
$zeile['LaengeUnterWasser']='33.3<sup> 1)</sup>';
}
//Wenn kein Wert gemessen, oder zumindest nicht eingetragen, wurde, dann muss anstatt "0" "-1" in die Datenbank eingetragen werden. Denn 0 würde bedeuten, es wurde der exakte Wert 0 gemessen. "-1" wurde genommen, da die Datenbank in diesen Spalten nur Zahlen nimmt. Bei der Ausgabe soll aber "k.A." für "keine Angabe" stehen
if($zeile['LaengeUnterWasser']=='-1'){
$zeile['LaengeUnterWasser']='k.A.';
}
if($zeile['LaengeUeberWasser']=='-1'){
$zeile['LaengeUeberWasser']='k.A.';
}
if($zeile['LaengeGesamt']=='-1'){
$zeile['LaengeGesamt']='k.A.';
}
if($zeile['DickeUnten']=='-1'){
$zeile['DickeUnten']='k.A.';
}
if($zeile['DickeMitte']=='-1'){
$zeile['DickeMitte']='k.A.';
}
if($zeile['Blattbreite']=='-1'){
$zeile['Blattbreite']='k.A.';
}
if($zeile['Blattlaenge']=='-1'){
$zeile['Blattlaenge']='k.A.';
}
if($zeile['Rispenlaenge']=='-1'){
$zeile['Rispenlaenge']='k.A.';
}
if($zeile['Blattzahl']=='-1'){
$zeile['Blattzahl']='k.A.';
}
if($zeile['Nodienzahl']=='-1'){
$zeile['Nodienzahl']='k.A.';
}
//Da die Aussage von Frühjahrs- und Herbstwerten sehr unterschiedlich ist, wird die Hintergrundfarbe dementsprechend angepasst. Die Herbstwerte werden dunkler, die Frühjahrswerte heller angezeigt
//Außerdem hat jeder Standort seine eigene Hintergrundfarbe: Groß Sarau:blau, Absalonshorst:rot, Kleiner See:gelb, Eichholz:grün, Wallbrechtbrücke:grau
if($zeile['Standort']=='Eichholz'){
if($zeile['Monat']==10){
echo('<tr style="background-color:#9AFF9A;">');//Oktober Farbe
}else{
echo('<tr style="background-color:#C4FEC4;">');//Frühjahr Farbe
}
}
elseif($zeile['Standort']=='Kleiner See'){
if($zeile['Monat']==10){
echo('<tr style="background-color:#F4FA58;">'); //Oktober Farbe
}else{
echo('<tr style="background-color:#F3F697;">'); //Frühjahr Farbe
}
}
elseif($zeile['Standort']=='Absalonshorst'){
if($zeile['Monat']==10){
echo('<tr style="background-color:#FF8C69;">'); //Oktober Farbe
}else{
echo('<tr style="background-color:#FABCA9;">'); //Frühjahr Farbe
}
}
elseif($zeile['Standort']=='Groß Sarau'){
if($zeile['Monat']==10){
echo('<tr style="background-color:#8EE5EE;">');//Oktober Farbe
}else{
echo('<tr style="background-color:#C8F3F8;">'); //Frühjahr Farbe
}
}
elseif($zeile['Standort']=='Wallbrechtbrücke'){
if($zeile['Monat']==10){
echo('<tr style="background-color:#E6E6E6;">');//Oktober Farbe
}else{
echo('<tr style="background-color:#F2F2F2;">'); //Frühjahr Farbe
}
}
else{
echo('<tr>');
}
//Hier erfolgt die Dateneinspeisung
echo('<td style="font-weight:bold;">'.$zeile['Standort'].'</td>');
echo('<td style="font-weight:bold;">'.$zeile['Datum'].'</td>');
echo('<td>'.$zeile['LaengeUnterWasser'].'</td>');
echo('<td>'.$zeile['LaengeUeberWasser'].'</td>');
echo('<td>'.$zeile['LaengeGesamt'].'</td>');
echo('<td>'.$zeile['DickeUnten'].'</td>');
echo('<td>'.$zeile['DickeMitte'].'</td>');
echo('<td>'.$zeile['Blattbreite'].'</td>');
echo('<td>'.$zeile['Blattlaenge'].'</td>');
echo('<td>'.$zeile['Rispenlaenge'].'</td>');
echo('<td>'.$zeile['Blattzahl'].'</td>');
echo('<td>'.$zeile['Nodienzahl'].'</td>');
/*
* Die Pfeile "->" sind Links zum Weiterleiten auf die Seite der Einzelergebnisse.
* Dazu werden Standort(ort) und Datum(date) an die Ziel-URL(biologischeeinzellergebnisse) angehängt
* Hier gibt es wieder Probleme mit dem ü von Wakenitzbrücke, weshalb bei der Wallunterscheidung das ü wieder zum ue geändert wird, ebenso das "ß" von Groß Sarau in Gross Sarau
*/
if($zeile['Standort']=='Wallbrechtbrücke'){
echo('<td><a href="?site=biologischeeinzelergebnisse&ort=Wallbrechtbruecke&date='.$zeile['Datum'].'"> -> </a></td>');
}
elseif($zeile['Standort']=='Groß Sarau'){
echo('<td><a href="?site=biologischeeinzelergebnisse&ort=Gross Sarau&date='.$zeile['Datum'].'"> -> </a></td>');
}else{
echo('<td><a href="?site=biologischeeinzelergebnisse&ort='.$zeile['Standort'].'&date='.$zeile['Datum'].'"> -> </a></td>');
}
echo('</tr>');
}
echo('</tbody></table></div>');
?>
<p>hell hinterlegte Zeilen sind Frühjahrswerte, dunkle Herbstwerte </p>
</div>