Dokumentation Scotttiger

Werbung
Angewandte Datentechnik
Scotttiger
[ Scotttiger ]
A n g e w a n d t e
D a t e n t e c h n i k
4. Jahrgang
© Andreas Hechenblaickner
4CDH @ HTBLA Kaindorf
Dipl.-Ing. Manfred Wilfling
Erstelldatum: 5. Februar 2002
Letzte Überarbeitung: 6. Februar 2002
Scotttiger
Seite 2 von 39
Inhaltsverzeichnis
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Inhaltsverzeichnis
1
Scotttiger
Inhaltsverzeichnis
1
Inhaltsverzeichnis
3
2
Aufgabenstellung
4
2.1
Anforderungen
4
2.2
Gesucht
4
3
Datenmodellierung
5
3.1
Datenmodell
5
3.2
ER-Diagramm
5
3.3
Interbase-Datenbank
5
[ /scotttiger.sql ]
5
4
5
Quellcode
7
[ /php_project/title.inc ]
7
[ /php_project/copyright.inc ]
7
[ /php_project/styles.css ]
8
[ /php_project/functions.php ]
9
[ /php_project/scotttiger.phtml ]
10
[ /php_project/table.phtml ]
11
[ /php_project/table-mitarbeiter.php ]
13
[ /php_project/table-abteilungen.php ]
15
[ /php_project/table-gehaltsstufen.php ]
17
[ /php_project/formular.phtml ]
19
[ /php_project/formular-basis.php ]
21
[ /php_project/formular-mitarbeiter.php ]
22
[ /php_project/formular-abteilungen.php ]
26
[ /php_project/formular-gehaltsstufen.php ]
29
Screenshots der Formulare
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
32
Seite 3 von 39
Scotttiger
Aufgabenstellung
2
Aufgabenstellung
2.1
Anforderungen
Entwickle ein Datenbanksystem um Mitarbeiter, Abteilungen und Gehaltsstufen
zu verwalten. Es müssen folgende Anforderungen erfüllt werden:
Ein Mitarbeiter gehört zu genau einer Abteilung.
Jeder Mitarbeiter hat Name usw.
Ein Mitarbeiter kann einen oder keinen anderen Mitarbeiter als Vorgesetzten
haben.
Die Gehälter sind Gehaltsstufen zugeordnet.
Die Abteilungen haben Attribute (Bezeichnung, Ort...).
2.2
Gesucht
Datenmodell
Entwurf
Reinschrift im ER-Studio
Generieren einer Interbase-Datenbank
Import der Daten aus SCOTTTIGER.GDB
Inter-/Intranet-Lösung: Formulare zum Anlegen, Löschen und Ändern von
Abteilungen, Gehaltsstufen und Mitarbeitern
Seite 4 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Datenmodellierung
Scotttiger
3
Datenmodellierung
3.1
Datenmodell
Mitarbeiter (MitarbeiterID, Vorname, Nachname, Gehalt,
AbteilungID[FK], VorgesetzterID[FK])
Abteilung (AbteilungID, MitarbeiterID[FK])
Gehaltsstufe (Gehaltsstufe, Min_Gehalt, Max_Gehalt)
3.2
ER-Diagramm
Mitarbeiter
MitarbeiterID
VorgesetzterID (FK)
AbteilungID (FK)
Vorname
Nachname
Gehalt
Abteilung
leitet
wird geleitet von
AbteilungID
Bezeichnung
MitarbeiterID (FK)
arbeitet in
Gehaltsstufe
Gehaltsstufe
Min_Gehalt
Max_Gehalt
ER-Diagramm (logisches Modell), Siehe auch /Scotttiger.dm1
3.3
Interbase-Datenbank
Die Interbase-Datenbank wurde mit folgenden SQL-Befehlen erstellt:
[ /scotttiger.sql ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
*ER/Studio 4.2 SQL Code Generation
* Company :
HTBLA Kaindorf
* Project :
Scotttiger_neu.dm1
* Author :
Andreas Hechenblaickner
*
* Date Created : Wednesday, December 12, 2001 12:44:30
* Target DBMS : InterBase
*/
CREATE DATABASE "scotttiger.gdb" USER "" PASSWORD ""
;
CONNECT "scotttiger.gdb" USER "" PASSWORD ""
;
/*
* TABLE: Abteilung
*/
CREATE TABLE Abteilung(
AbteilungID
INTEGER
Bezeichnung
VARCHAR(10),
NOT NULL,
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 5 von 39
Scotttiger
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
Datenmodellierung
MitarbeiterID
INTEGER
NOT NULL,
CONSTRAINT PK2 PRIMARY KEY (AbteilungID)
)
;
/*
* TABLE: Gehaltsstufe
*/
CREATE TABLE Gehaltsstufe(
Gehaltsstufe
INTEGER
NOT NULL,
Min_Gehalt
INTEGER,
Max_Gehalt
INTEGER,
CONSTRAINT PK3 PRIMARY KEY (Gehaltsstufe)
)
;
/*
* TABLE: Mitarbeiter
*/
CREATE TABLE Mitarbeiter(
MitarbeiterID
INTEGER
NOT NULL,
VorgesetzterID
INTEGER,
AbteilungID
INTEGER
NOT NULL,
Vorname
VARCHAR(10),
Nachname
VARCHAR(25),
Gehalt
INTEGER,
CONSTRAINT PK1 PRIMARY KEY (MitarbeiterID)
)
;
/*
* TABLE: Abteilung
*/
ALTER TABLE Abteilung ADD CONSTRAINT RefMitarbeiter4
FOREIGN KEY (MitarbeiterID)
REFERENCES Mitarbeiter(MitarbeiterID)
;
/*
* TABLE: Mitarbeiter
*/
ALTER TABLE Mitarbeiter ADD CONSTRAINT RefAbteilung5
FOREIGN KEY (AbteilungID)
REFERENCES Abteilung(AbteilungID)
;
ALTER TABLE Mitarbeiter ADD CONSTRAINT RefMitarbeiter10
FOREIGN KEY (VorgesetzterID)
REFERENCES Mitarbeiter(MitarbeiterID)
;
Seite 6 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
4
Scotttiger
Quellcode
[ /php_project/title.inc ]
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
// ------------------------------------------------------------------// :: title.inc
// ------------------------------------------------------------------// :: Der Kopf für jedes Formular des Projektes. Wird am Beginn jedes
//
Formulars inkludiert.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso8859-1">
<meta http-equiv="expires" content="0">
<title><?php echo $title ?> ::: <?php echo $headline ?></title>
<link rel="stylesheet" href="styles.css" type="text/css">
</head>
<body bgcolor="#000000" text="#FFFFFF">
<a name="top"><p class="headline"><?php echo $headline ?></p></a>
[ /php_project/copyright.inc ]
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
<?php
// ------------------------------------------------------------------// :: copyright.inc
// ------------------------------------------------------------------// :: Das Ende jedes Formulars. Enthält Informationen über Autor und
//
wird am ende jedes Formulars inkludiert.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------?>
<p> </p>
<table width="100%">
<tr>
<td align="left" class="small_red">
^ <a href="#top" class="small_gray">top</a>
</td>
<td align="right" class="small_red">
< < <  <span class="small_gray">©
<a href="mailto:[email protected]"
class="small_gray">Andreas Hechenblaickner</a>
</span>|<span class="small_gray"> 2002</span>
 > > > > > > > >
</td>
</tr>
</table>
</body>
</html>
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 7 von 39
Scotttiger
Quellcode
[ /php_project/styles.css ]
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
<!-// ------------------------------------------------------------------// :: style.css
// ------------------------------------------------------------------// :: Style-Sheets-Datei. Alle verwendeten Schriftformatierungen
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// -------------------------------------------------------------------->
.headline
{ font-family: Verdana; font-size: 22px; color: #FF0000; text-align:
left; font-weight: bold }
.headline_small
{ font-family: Verdana; font-size: 16px; color: #FF0000; text-align:
left; font-weight: bold }
.middle_gray
{ font-family: Verdana; font-size: 12px; color: #999999; font-weight:
normal }
.middle_gray_bold
{ font-family: Verdana; font-size: 12px; color: #999999; font-weight:
bold }
.middle_red
{ font-family: Verdana; font-size: 12px; color: #FF0000; font-weight:
normal }
.small_red
{ font-family: Verdana; font-size: 9px; color: #FF0000; font-weight:
normal }
.small_gray
{ font-family: Verdana; font-size: 9px; color: #999999; font-weight:
normal }
152
Seite 8 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
[ /php_project/functions.php ]
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
<?php
// ------------------------------------------------------------------// :: functions.php
// ------------------------------------------------------------------// :: Enthält allgemein wiederverwendbare Funktionen des Projekts
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------//
//
//
//
//
//
//
//
//
------------------------------------------------------------------:: navlink
------------------------------------------------------------------:: Erstellt eine Link im Format '> Link' der für die NavigationsLeiste unterhalb der Überschrift verwendet wird.
------------------------------------------------------------------:: $name
Beschriftun des Links
$target
Ziel-URL
------------------------------------------------------------------function navlink ($name, $target) {
echo "<span class=\"small_red\">
> <a href=\"".$target."\" class=\"small_gray\">"
.$name."</a>
</span>\n";
}
//
//
//
//
//
//
//
//
//
//
------------------------------------------------------------------:: buttonlink
------------------------------------------------------------------:: Erstellt eine Link im Format '[ Link ]' der für die auszuführende Aktionen (zB übernehmen) verwendet wird.
------------------------------------------------------------------:: $name
Beschriftun des Links
$target
Ziel-URL
$style
Präfix für den Style-Sheet ("middle" oder "small")
------------------------------------------------------------------function buttonlink ($name, $target, $style) {
echo "<span class=\"".$style."_red\">
[ <a href=\"".$target."\" class=\"".$style."_gray\">"
.$name."</a> ] 
</span>\n";
}
//
//
//
//
//
//
//
------------------------------------------------------------------:: dbconnect
------------------------------------------------------------------:: Stellt die Verbindung zur Datenbank Scotttiger.gdb her.
------------------------------------------------------------------:: return
Eindeutige Nummer der Datenbankverbindung
------------------------------------------------------------------function dbconnect () {
$database =
"localhost:d:\daten\sonstiges\htdocs\scotttiger\SCOTTTIGER.GDB";
207
$user = "sysdba";
208
$password = "masterkey";
209
210
$connect = ibase_pconnect ($database, $user, $password);
211
212
return $connect;
213
}
214
215 ?>
216
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 9 von 39
Scotttiger
Quellcode
[ /php_project/scotttiger.phtml ]
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
<?php
// ------------------------------------------------------------------// :: scotttiger.phtml
// ------------------------------------------------------------------// :: Zeigt Links zu allen Tabellen an. Zusätzlich gibt es Links zu
//
den wichtigsten Funktionen (erweiterte Suche und hinzufügen)
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------include ("functions.php");
$title = "Scotttiger";
$site = "Scotttiger";
$headline = "Übungsbeispiel Scotttiger";
include ("title.inc");
navlink ($site, "$site.phtml")
?>
<p class="headline_small"><br>Tabellen</p>
<table cellspacing="8">
<?php
$tables[0] = "Mitarbeiter";
$tables[1] = "Abteilungen";
$tables[2] = "Gehaltsstufen";
for ($i = 0; $i < count ($tables); $i++) {
?>
<tr>
<td class="middle_red">>>>&nbsp</td>
<td><a href="table.phtml?table=<?php echo $tables[$i] ?>"
class="middle_gray"><?php echo $tables[$i] ?></a></td>
</tr>
<tr>
<td> </td>
<td>
<?php
buttonlink ("hinzufügen",
"formular.phtml?table=$tables[$i]&action=add", "small");
buttonlink ("erweiterte Suche",
"formular.phtml?table=$tables[$i]&action=search", "small");
?>
<br> 
</td>
</tr>
<?php
}
?>
</table>
260
261
262
263
264
265
266
267
268
269 <?php
270
include ("copyright.inc");
271 ?>
272
Seite 10 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
[ /php_project/table.phtml ]
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
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
<?php
// ------------------------------------------------------------------// :: table.phtml
// ------------------------------------------------------------------// :: Zeigt den Inhalt einer Tabelle an und bieten die Möglichkeit zur
//
einfachen Suche und zum Löschen einzelner Datensätze.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------// :: $table
Name der Tabelle (Mitarbeiter, Abteilungen,
//
Gehaltsstufen)
// ------------------------------------------------------------------$table = $HTTP_GET_VARS["table"];
include ("functions.php");
include ("table-$table.php");
include ("title.inc");
navlink ($title, "$title.phtml");
navlink ($site, "$site.phtml");
function delete ($table, $ibasetable, $id_name, $HTTP_POST_VARS) {
$count = $HTTP_POST_VARS["hidden_count"];
$success = TRUE;
if ($count > 0) {
$connect = dbconnect ();
for ($i = 1; $i <= $count; $i++) {
if ($HTTP_POST_VARS["chkbox_delete_$i"] == "true")
{
$id_value = $HTTP_POST_VARS["hidden_id_$i"];
$sql_query = "delete from $ibasetable
where $id_name=$id_value";
$result = ibase_query ($connect, $sql_query);
if ($result == 0) $success = FALSE;
}
}
ibase_close ($connect);
}
return $success;
}
if (! delete ($table, $ibasetable, $id_name, $HTTP_POST_VARS))
$main_error = "Fehler beim Löschen der Datensätze!";
if ($main_error != "") {
echo "<p class=\"middle_red\">$main_error</p>";
}
?>
<script language="JavaScript">
<!-function deleteconfirm(){
if (confirm("Sollen die markierten <?php echo $site ?>
wirklich\ngelöscht werden?") == true)
334
{
335
document.formdelete.submit();
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 11 von 39
Scotttiger
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
Quellcode
}
}
//-->
</script>
<form name="formsearch" action="table.phtml?table=<?php echo $site ?>"
method="post">
<table cellspacing="8" class="middle_gray">
<tr>
<td><?php echo $search_name ?></td>
<td><input type="text" name="input_search" value="<?php echo
$search_value ?>"></td>
<td> </td>
<td class="middle_red">
<?php
buttonlink ("suchen",
"javascript:document.formsearch.submit()", "middle");
buttonlink ("erweiterte Suche",
"formular.phtml?table=$site&action=search", "middle");
buttonlink ("hinzufügen",
"formular.phtml?table=$site&action=add", "middle");
?>
</td>
</tr>
</table>
</form>
352
353
354
355
356
357
358 <table cellspacing="8">
359
<tr>
360
<td>
361
<form name="formdelete" action="table.phtml?table=<?php echo
$site ?>" method="post">
362
<?php
363
createtable ($search_value, $site, $HTTP_POST_VARS);
364
?>
365
</form>
366
</td>
367
</tr>
368
<tr>
369
<td class="middle_red">
370
<?php
371
buttonlink ("löschen", "javascript:deleteconfirm()",
"middle");
372
buttonlink ("hinzufügen",
"formular.phtml?table=$site&action=add", "middle");
373
?>
374
</td>
375
</tr>
376 </table>
377
378 <?php
379
include ("copyright.inc");
380 ?>
381
Seite 12 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
[ /php_project/table-mitarbeiter.php ]
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
<?php
// ------------------------------------------------------------------// :: table-mitarbeiter.php
// ------------------------------------------------------------------// :: Enthält die SQL-Abfragen zur Ermittlung des Tabelleninhalts der
//
Tabelle scott_emp (Mitarbeiter) und die Ausgabe als Tabelle im
//
Browser.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------$title = "Scotttiger";
$site = "Mitarbeiter";
$headline = "Mitarbeiter";
$ibasetable = "scott_emp";
$id_name = "empno";
$search_name = "Name";
$search_value = $HTTP_POST_VARS["input_search"];
function createtable ($search_value, $site, $HTTP_POST_VARS) {
$empno = $HTTP_POST_VARS["input_empno"];
$ename = $HTTP_POST_VARS["input_ename"];
$job = $HTTP_POST_VARS["input_job"];
$deptno = $HTTP_POST_VARS["select_deptno"];
$sal = $HTTP_POST_VARS["input_sal"];
$mgr = $HTTP_POST_VARS["select_mgr"];
if ($search_value == "") $search_value = $ename;
$connect = dbconnect ();
$sql_query = "select emp.empno, emp.ename, emp.job, emp.hiredate,
emp.sal, dept.dname, mgr.ename as mgr
from scott_emp emp
inner join scott_dept dept on emp.deptno=dept.deptno
left outer join scott_emp mgr on emp.mgr=mgr.empno
where emp.ename like '%$search_value%' and emp.job
like '%$job%'";
if ($deptno != "") $sql_query = "$sql_query and
emp.deptno=$deptno";
if ($sal != "") $sql_query = "$sql_query and emp.sal=$sal";
if ($mgr != "") $sql_query = "$sql_query and emp.mgr=$mgr";
$sql_query = "$sql_query order by emp.ename";
$result = ibase_query ($connect, $sql_query);
$i = 0;
echo "<table cellspacing=\"1\" cellpadding=\"3\" border=\"1\"
bordercolor=\"#999999\" width=\"600\" class=\"middle_gray\">";
echo "<tr class=\"middle_red\">
<th width=\"16\"> </th>
<th>Name</th>
<th>Beruf</th>
<th>Abteilung</th>
<th>Gehalt</th>
<th>Vorgesetzter</th>
</tr>";
while ($row = ibase_fetch_object ($result)) {
$i++;
echo "<tr>
<input type=\"hidden\" name=\"hidden_id_$i\" value=\"$row>EMPNO\">
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 13 von 39
Scotttiger
442
443
444
445
446
447
448
Quellcode
<td width=\"16\" align=\"center\"><input type=\"checkbox\"
name=\"chkbox_delete_$i\" value=\"true\"></td>
<td><a
href=\"formular.phtml?table=$site&action=modify&id=$row->EMPNO\"
class=\"middle_gray\">$row->ENAME</a></td>
<td>$row->JOB</td>
<td>$row->DNAME</td>
<td align=\"right\">$row->SAL \$</td>";
if (isset ($row->MGR)) echo "<td>$row->MGR</td>"; else echo
"<td> </td>";
echo "</tr>";
}
449
450
451
452
453
454
455
456
457
458
}
459 ?>
460
echo "<input type=\"hidden\" name=\"hidden_count\" value=\"$i\">";
echo "</table>";
ibase_close ($connect);
return TRUE;
Seite 14 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
[ /php_project/table-abteilungen.php ]
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
<?php
// ------------------------------------------------------------------// :: table-abteilungen.php
// ------------------------------------------------------------------// :: Enthält die SQL-Abfragen zur Ermittlung des Tabelleninhalts der
//
Tabelle scott_dept (Abteilungen) und die Ausgabe als Tabelle im
//
Browser.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------$title = "Scotttiger";
$site = "Abteilungen";
$headline = "Abteilungen";
$ibasetable = "scott_dept";
$id_name = "deptno";
$search_name = "Bezeichnung";
$search_value = $HTTP_POST_VARS["input_search"];
function createtable ($search_value, $site, $HTTP_POST_VARS) {
$deptno = $HTTP_POST_VARS["input_deptno"];
$dname = $HTTP_POST_VARS["input_dname"];
$loc = $HTTP_POST_VARS["input_loc"];
if ($search_value == "") $search_value = $dname;
$connect = dbconnect ();
$sql_query = "select dept.deptno, dept.dname, dept.loc
from scott_dept dept
where dept.dname like '%$search_value%' and dept.loc
like '%$loc%'
494
order by dept.dname";
495
496
$result = ibase_query ($connect, $sql_query);
497
$i = 0;
498
499
echo "<table cellspacing=\"1\" cellpadding=\"3\" border=\"1\"
bordercolor=\"#999999\" width=\"400\" class=\"middle_gray\">";
500
echo "<tr class=\"middle_red\">
501
<th width=\"16\"> </th>
502
<th>Bezeichnung</th>
503
<th>Ort</th>
504
</tr>";
505
506
while ($row = ibase_fetch_object ($result)) {
507
$i++;
508
echo "<tr>
509
<input type=\"hidden\" name=\"hidden_id_$i\" value=\"$row>DEPTNO\">
510
<td width=\"16\" align=\"center\"><input type=\"checkbox\"
name=\"chkbox_delete_$i\" value=\"true\"></td>
511
<td><a
href=\"formular.phtml?table=$site&action=modify&id=$row->DEPTNO\"
512
class=\"middle_gray\">$row->DNAME</a></td>
513
<td>$row->LOC</td>
514
</tr>";
515
}
516
517
echo "<input type=\"hidden\" name=\"hidden_count\" value=\"$i\">";
518
echo "</table>";
519
520
ibase_close ($connect);
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 15 von 39
Scotttiger
Quellcode
521
522
return TRUE;
523
}
524 ?>
525
Seite 16 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
[ /php_project/table-gehaltsstufen.php ]
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
<?php
// ------------------------------------------------------------------// :: table-gehaltstufen.php
// ------------------------------------------------------------------// :: Enthält die SQL-Abfragen zur Ermittlung des Tabelleninhalts der
//
Tabelle scott_salgrade (Gehaltsstufen) und die Ausgabe als
//
Tabelle im Browser.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------$title = "Scotttiger";
$site = "Gehaltsstufen";
$headline = "Gehaltsstufen";
$ibasetable = "scott_salgrade";
$id_name = "grade";
$search_name = "Stufe";
$search_value = $HTTP_POST_VARS["input_search"];
function createtable ($search_value, $site, $HTTP_POST_VARS) {
$deptno = $HTTP_POST_VARS["input_deptno"];
$dname = $HTTP_POST_VARS["input_dname"];
$loc = $HTTP_POST_VARS["input_loc"];
if ($search_value == "") $search_value = $dname;
$connect = dbconnect ();
$sql_query = "select salgrade.grade, salgrade.losal,
salgrade.hisal
557
from scott_salgrade salgrade
558
where salgrade.grade like '%$search_value%'
559
order by salgrade.grade";
560
561
$result = ibase_query ($connect, $sql_query);
562
$i = 0;
563
564
echo "<table cellspacing=\"1\" cellpadding=\"3\" border=\"1\"
bordercolor=\"#999999\" width=\"300\" class=\"middle_gray\">";
565
echo "<tr class=\"middle_red\">
566
<th width=\"16\"> </th>
567
<th>Stufe</th>
568
<th>min</th>
569
<th>max</th>
570
</tr>";
571
572
while ($row = ibase_fetch_object ($result)) {
573
$i++;
574
echo "<tr>
575
<input type=\"hidden\" name=\"hidden_id_$i\" value=\"$row>GRADE\">
576
<td width=\"16\" align=\"center\"><input type=\"checkbox\"
name=\"chkbox_delete_$i\" value=\"true\"></td>
577
<td align=\"right\"><a
href=\"formular.phtml?table=$site&action=modify&id=$row->GRADE\"
578
class=\"middle_gray\">$row->GRADE</a></td>
579
<td align=\"right\">$row->LOSAL \$</td>
580
<td align=\"right\">$row->HISAL \$</td>
581
</tr>";
582
}
583
584
echo "<input type=\"hidden\" name=\"hidden_count\" value=\"$i\">";
585
echo "</table>";
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 17 von 39
Scotttiger
Quellcode
586
587
ibase_close ($connect);
588
589
return TRUE;
590
}
591 ?>
592
Seite 18 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
[ /php_project/formular.phtml ]
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
<?php
// ------------------------------------------------------------------// :: formular.phtml
// ------------------------------------------------------------------// :: Enthält das Grundgerüst für die Formulare zum Bearbeiten, Hinzu//
fügen und Suchen von Mitarbeitern, Abteilungen und Gehalts//
stufen.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------// :: $table
Name der Tabelle (Mitarbeiter, Abteilungen,
//
Gehaltsstufen)
//
$action
Durchzuführende Aufgabe (add, modify, search)
//
$id
ID des anzuzeigenden Datensatzes (nur bei modify)
// ------------------------------------------------------------------$table = $HTTP_GET_VARS["table"];
$action = $HTTP_GET_VARS["action"];
$execute = $HTTP_POST_VARS["hidden_execute"];
$id = $HTTP_GET_VARS["id"];
include ("functions.php");
include ("formular-$table.php");
$formular = new formular ($action);
if ($action == "search") {
$navlink = "erweiterte Suche";
$headline = "$site suchen";
}
else if ($action == "add") {
$navlink = "hinzufügen";
$headline = "$site hinzufügen";
}
else if ($action == "modify") {
$navlink = "bearbeiten";
$headline = "$site bearbeiten";
}
include ("title.inc");
navlink ($title, "$title.phtml");
navlink ($site, "table.phtml?table=$site");
navlink ($navlink, "formular.phtml?table=$site&action=$action");
if ($execute == "true") {
$error = $formular->selectform ($HTTP_POST_VARS);
$error = $formular->execute ($action);
if (! $error) {
echo "<p class=\"middle_red\">Der Datensatz wurde erfolgreich in
der Datenbank gespeichert.</p>";
}
}
else {
if (isset ($id)) {
$error = $formular->selectrow ($id);
}
else {
$error = $formular->selectempty ();
}
}
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 19 von 39
Scotttiger
657
658
659
660
661
Quellcode
if ($action == "add" or $action == "modify") {
echo "<form name=\"formular\"
action=\"formular.phtml?table=$site&action=$action\"
method=\"post\">";
}
else if ($action == "search") {
echo "<form name=\"formular\" action=\"table.phtml?table=$site\"
method=\"post\">";
}
662
663
664
if ($error) {
665
echo "<p class=\"middle_red\">" . $formular->geterror () . "</p>";
666
}
667
668
$error = $formular->create ();
669
670
echo "</form>";
671 ?>
672
673 <table cellspacing="8">
674
<tr>
675
<td width="120"> </td>
676
<td class="middle_red">
677
<?php
678
if ($action == "modify" or $action == "add") {
679
buttonlink ("übernehmen",
"javascript:document.formular.submit()", "middle");
680
buttonlink ("verwerfen", "table.phtml?table=$site",
"middle");
681
}
682
else if ($action == "search") {
683
buttonlink ("suchen",
"javascript:document.formular.submit()", "middle");
684
}
685
?>
686
</td>
687
</tr>
688 </table>
689
690 <?php
691
include ("copyright.inc");
692 ?>
693
Seite 20 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
[ /php_project/formular-basis.php ]
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
<?php
// ------------------------------------------------------------------// :: formular-basis.php
// ------------------------------------------------------------------// :: Enthält die Klasse formular_abstract die als Basisklasse für die
//
Klassen zur Verwaltung der einzelnen Datensätze dient. Für jede
//
Tabelle gibt es eine eigene Ableitung dieser Klasse in formular//
<tabellenname>.php.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------class formular_abstract {
var
var
var
var
$action;
$error;
$check;
$connect;
function formular_abstract () {
$this->connect = dbconnect ();
$this->check = false;
}
function geterror () {
return $this->error;
}
function insertrow () {
}
function updaterow () {
}
function execute ($action) {
if ($action != "") {
$this->check = true;
$this->action = $action;
if ($this->action == "add") {
$error = $this->insertrow ();
}
else if ($action == "modify") {
$error = $this->updaterow ();
}
return $error;
}
else {
$this->error = "Fehler: action nicht definiert";
return true;
}
}
function create () {
}
}
?>
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 21 von 39
Scotttiger
Quellcode
[ /php_project/formular-mitarbeiter.php ]
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
<?php
// ------------------------------------------------------------------// :: formular-mitarbeiter.php
// ------------------------------------------------------------------// :: Enthält die Klasse zur internen Verwaltung eines Mitarbeiter//
Datensatzes. Es gibt Methoden zum Einlesen, zum Erstellen und
//
zum Ändern sowie zur Anzeige als Formular im Browser.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------$title = "Scotttiger";
$site = "Mitarbeiter";
include ("formular-basis.php");
class formular extends formular_abstract {
var
var
var
var
var
var
var
$empno;
$ename;
$job;
$deptno;
$sal;
$mgr;
$hiredate;
function check_ename () {
if ($this->ename == "") {
$this->error = "Bitte geben Sie einen Namen an";
return true;
}
}
function check_job () {
if ($this->job == "") {
$this->error = "Bitte geben Sie einen Beruf an";
return true;
}
}
function check_sal () {
if ($this->sal == "" or ! is_numeric ($this->sal)) {
$this->error = "Ungültige Zahl";
return true;
}
}
function insertrow () {
$this->hiredate = date ("d.m.y");
if ($this->mgr == "") $this->mgr = "NULL";
$sql_query = "insert into scott_emp (empno, ename, job, deptno,
sal, mgr, hiredate)
813
values ((select max(empno)+1 from scott_emp),
'$this->ename', '$this->job', $this->deptno, $this->sal, $this->mgr,
'$this->hiredate')";
814
$result = ibase_query ($this->connect, $sql_query);
815
816
if ($result == 0) {
817
$this->error = "Fehler beim hinzufügen des Datensatzes zur
Datenbank";
818
return true;
Seite 22 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
819
820
821
822
823
824
825
826
Scotttiger
}
}
function updaterow () {
if ($this->mgr == "") $this->mgr = "NULL";
$sql_query = "update scott_emp
set ename='$this->ename', job='$this->job',
deptno=$this->deptno, sal=$this->sal, mgr=$this->mgr
827
where empno=$this->empno";
828
$result = ibase_query ($this->connect, $sql_query);
829
830
if ($result == 0) {
831
$this->error = "Fehler beim aktualisieren der Datenbank";
832
return true;
833
}
834
}
835
836
function selectrow ($id) {
837
if ($id != "")
838
{
839
$this->empno = $id;
840
841
$sql_query = "select empno, ename, job, deptno, sal, mgr,
hiredate
842
from scott_emp
843
where empno=$this->empno";
844
$result = ibase_query ($this->connect, $sql_query);
845
846
if ($result == 0) {
847
$this->error = "Fehler beim Auslesen der Datenbank";
848
return true;
849
}
850
851
if ($row = ibase_fetch_object ($result)) {
852
$this->ename = $row->ENAME;
853
$this->job = $row->JOB;
854
$this->deptno = $row->DEPTNO;
855
$this->sal = $row->SAL;
856
$this->mgr = $row->MGR;
857
$this->hiredate = $row->HIREDATE;
858
}
859
}
860
else {
861
$this->error = "Fehler: empno nicht definiert";
862
return true;
863
}
864
}
865
866
function selectform ($HTTP_POST_VARS) {
867
$this->empno = $HTTP_POST_VARS["hidden_empno"];
868
$this->ename = $HTTP_POST_VARS["input_ename"];
869
$this->job = $HTTP_POST_VARS["input_job"];
870
$this->deptno = $HTTP_POST_VARS["select_deptno"];
871
$this->sal = $HTTP_POST_VARS["input_sal"];
872
$this->mgr = $HTTP_POST_VARS["select_mgr"];
873
}
874
875
function selectempty () {
876
$this->empno = "";
877
$this->ename = "";
878
$this->job = "";
879
$this->deptno = "";
880
$this->sal = "";
881
$this->mgr = "";
882
$this->hiredate = "";
883
}
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 23 von 39
Scotttiger
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
Quellcode
function create () {
echo "<input type=\"hidden\" name=\"hidden_execute\"
value=\"true\">
<input type=\"hidden\" name=\"hidden_empno\"
value=\"$this->empno\">
<table cellspacing=\"8\" class=\"middle_gray\">
<tr>
<td width=\"120\" align=\"right\">Name</td>
<td><input type=\"text\" name=\"input_ename\"
value=\"$this->ename\" maxlength=\"10\"></td>
<td> </td>
<td> </td>
<td class=\"middle_red\">";
if ($this->check and $this->check_ename ()) echo $this->error;
echo "</td>
</tr>
<tr>
<td width=\"120\" align=\"right\">Beruf</td>
<td><input type=\"text\" name=\"input_job\" value=\"$this>job\" maxlength=\"9\"></td>
903
<td> </td>
904
<td> </td>
905
<td class=\"middle_red\">";
906
907
if ($this->check and $this->check_job ()) echo $this->error;
908
909
echo "</td>
910
</tr>
911
<tr>
912
<td align=\"right\">Abteilung</td>
913
<td>
914
<select name=\"select_deptno\">";
915
916
if ($this->action == "search") echo "<option></option>";
917
918
$result = ibase_query ($this->connect, "select deptno, dname
919
from scott_dept order by
dname");
920
if ($result == 0) {
921
$this->error = "Fehler beim Auslesen der Datenbank";
922
return true;
923
}
924
925
while ($row = ibase_fetch_object ($result)) {
926
echo "<option value=\"$row->DEPTNO\"";
927
if ($row->DEPTNO == $this->deptno) echo " selected";
928
echo ">$row->DNAME</option>";
929
}
930
931
echo "</select>
932
</td>
933
<td> </td>
934
<td>";
935
936
navlink ("Abteilungen", "table.phtml?table=Abteilungen");
937
navlink ("hinzufügen",
"formular.phtml?table=Abteilungen&action=add");
938
939
echo "</td>
940
</tr>
941
<tr>
942
<td width=\"120\" align=\"right\">Gehalt</td>
943
<td><input type=\"text\" name=\"input_sal\" value=\"$this>sal\"></td>
Seite 24 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
Scotttiger
<td>$</td>
<td> </td>
<td class=\"middle_red\">";
if ($this->check and $this->check_sal ()) echo $this->error;
echo "</td>
</tr>
<tr>
<td align=\"right\">Vorgesetzter</td>
<td>
<select name=\"select_mgr\">
<option></option>";
$result = ibase_query ($this->connect, "select empno, ename
from scott_emp order by
ename");
if ($result == 0) {
$this->error = "Fehler beim Auslesen der Datenbank";
return true;
}
while ($row = ibase_fetch_object ($result)) {
echo "<option value=\"$row->EMPNO\"";
if ($row->EMPNO == $this->mgr) echo " selected";
echo ">$row->ENAME</option>";
}
echo "</select>
</td>
<td> </td>
<td>";
navlink ("Mitarbeiter", "table.phtml?table=Mitarbeiter");
navlink ("hinzufügen",
"formular.phtml?table=Mitarbeiter&action=add");
977
978
echo "</tr>
979
</table>";
980
}
981
}
982 ?>
983
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 25 von 39
Scotttiger
Quellcode
[ /php_project/formular-abteilungen.php ]
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
<?php
// ------------------------------------------------------------------// :: formular-abteilungen.phtml
// ------------------------------------------------------------------// :: Enthält die Klasse zur internen Verwaltung eines Abteilungs//
Datensatzes. Es gibt Methoden zum Einlesen, zum Erstellen und
//
zum Ändern sowie zur Anzeige als Formular im Browser.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------$title = "Scotttiger";
$site = "Abteilungen";
include ("formular-basis.php");
class formular extends formular_abstract {
var $deptno;
var $dname;
var $loc;
function check_dname () {
if ($this->dname == "") {
$this->error = "Bitte geben Sie die Bezeichnung der Abteilung
an";
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
return true;
}
}
function check_loc () {
if ($this->loc == "") {
$this->error = "Bitte geben Sie einen Ort an";
return true;
}
}
//
//
//
//
//
------------------------------------------------------------------:: insertrow
------------------------------------------------------------------:: Schreibt den aktuellen Datensatz in die Datenbank
-------------------------------------------------------------------
function insertrow () {
$sql_query = "insert into scott_dept (deptno, dname, loc)
values ((select max(deptno)+1 from scott_dept),
'$this->dname', '$this->loc')";
1032
$result = ibase_query ($this->connect, $sql_query);
1033
1034
if ($result == 0) {
1035
$this->error = "Fehler beim hinzufügen des Datensatzes zur
Datenbank";
1036
return true;
1037
}
1038
}
1039
1040 // ------------------------------------------------------------------1041 // :: updaterow
1042 // ------------------------------------------------------------------1043 // :: Speichert die änderungen den gewählten Datensatzes in der
1044 //
Datenbank
1045 // -------------------------------------------------------------------
Seite 26 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
Scotttiger
function updaterow () {
$sql_query = "update scott_dept
set dname='$this->dname', loc='$this->loc'
where deptno=$this->deptno";
$result = ibase_query ($this->connect, $sql_query);
if ($result == 0) {
$this->error = "Fehler beim aktualisieren der Datenbank";
return true;
}
}
//
//
//
//
//
//
//
//
//
------------------------------------------------------------------:: selectrow
------------------------------------------------------------------:: Liest den Datensatz des Mitarbeiters mit der gegebenen ID aus
der Datenbank aus und speichert die Felder in der interen
Struktur
------------------------------------------------------------------:: $id
empno des gesuchten Mitarbeiters
------------------------------------------------------------------function selectrow ($id) {
if ($id != "")
{
$this->deptno = $id;
$sql_query = "select deptno, dname, loc
from scott_dept
where deptno=$this->deptno";
$result = ibase_query ($this->connect, $sql_query);
if ($result == 0) {
$this->error = "Fehler beim Auslesen der Datenbank";
return true;
}
if ($row = ibase_fetch_object ($result)) {
$this->dname = $row->DNAME;
$this->loc = $row->LOC;
}
}
else {
$this->error = "Fehler: deptno nicht definiert";
return true;
}
}
function selectform ($HTTP_POST_VARS) {
$this->deptno = $HTTP_POST_VARS["hidden_deptno"];
$this->dname = $HTTP_POST_VARS["input_dname"];
$this->loc = $HTTP_POST_VARS["input_loc"];
}
function selectempty () {
$this->deptno = "";
$this->dname = "";
$this->loc = "";
}
//
//
//
//
//
//
------------------------------------------------------------------:: create
------------------------------------------------------------------:: Zeigt den gewählten Datensatz als Formular mit Textfeldern und
Kombinations-Listenfeldern im Browser an.
-------------------------------------------------------------------
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 27 von 39
Scotttiger
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
Quellcode
function create () {
echo "<input type=\"hidden\" name=\"hidden_execute\"
value=\"true\">
<input type=\"hidden\" name=\"hidden_deptno\"
value=\"$this->deptno\">
<table cellspacing=\"8\" class=\"middle_gray\">
<tr>
<td width=\"120\" align=\"right\">Bezeichnung</td>
<td><input type=\"text\" name=\"input_dname\"
value=\"$this->dname\" maxlength=\"14\"></td>
<td> </td>
<td> </td>
<td class=\"middle_red\">";
if ($this->check and $this->check_dname ()) echo $this->error;
echo "</td>
</tr>
<tr>
<td width=\"120\" align=\"right\">Ort</td>
<td><input type=\"text\" name=\"input_loc\" value=\"$this>loc\" maxlength=\"13\"></td>
1132
<td>&nbsp</td>
1133
<td> </td>
1134
<td class=\"middle_red\">";
1135
1136
if ($this->check and $this->check_loc ()) echo $this->error;
1137
1138
echo "</td>
1139
</tr>
1140
</table>";
1141
}
1142
}
1143 ?>
1144
Seite 28 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
[ /php_project/formular-gehaltsstufen.php ]
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
<?php
// ------------------------------------------------------------------// :: formular-gehaltsstufen.phtml
// ------------------------------------------------------------------// :: Enthält die Klasse zur internen Verwaltung eines Gehalststufen//
Datensatzes. Es gibt Methoden zum Einlesen, zum Erstellen und
//
zum Ändern sowie zur Anzeige als Formular im Browser.
// ------------------------------------------------------------------// :: (c) Andreas Hechenblaickner | 2002 <[email protected]>
// ------------------------------------------------------------------// :: Create Date 2001-12-04 ah
//
Last Update 2002-02-05 ah
// ------------------------------------------------------------------$title = "Scotttiger";
$site = "Gehaltsstufen";
include ("formular-basis.php");
class formular extends formular_abstract {
var
var
var
var
$action;
$error;
$check;
$connect;
var $grade;
var $losal;
var $hisal;
function check_losal () {
if ($this->losal == "" or ! is_numeric ($this->losal)) {
$this->error = "Bitte geben Sie die untere Gehaltsgrenze an";
return true;
}
}
function check_hisal () {
if ($this->hisal == "" or ! is_numeric ($this->hisal)) {
$this->error = "Bitte geben Sie die obere Gehaltsgrenze an";
return true;
}
}
function insertrow () {
$sql_query = "insert into scott_salgrade (grade, losal, hisal)
values ((select max(grade)+1 from scott_salgrade),
$this->losal, $this->hisal)";
1192
$result = ibase_query ($this->connect, $sql_query);
1193
1194
if ($result == 0) {
1195
$this->error = "Fehler beim hinzufügen des Datensatzes zur
Datenbank";
1196
return true;
1197
}
1198
}
1199
1200
function updaterow () {
1201
$sql_query = "update scott_salgrade
1202
set losal=$this->losal, hisal=$this->hisal
1203
where grade=$this->grade";
1204
$result = ibase_query ($this->connect, $sql_query);
1205
1206
if ($result == 0) {
1207
$this->error = "Fehler beim aktualisieren der Datenbank";
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 29 von 39
Scotttiger
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
Quellcode
return true;
}
}
function selectrow ($id) {
if ($id != "")
{
$this->grade = $id;
$sql_query = "select grade, losal, hisal
from scott_salgrade
where grade=$this->grade";
$result = ibase_query ($this->connect, $sql_query);
if ($result == 0) {
$this->error = "Fehler beim Auslesen der Datenbank";
return true;
}
if ($row = ibase_fetch_object ($result)) {
$this->losal = $row->LOSAL;
$this->hisal = $row->HISAL;
}
}
else {
$this->error = "Fehler: grade nicht definiert";
return true;
}
}
function selectform ($HTTP_POST_VARS) {
$this->grade = $HTTP_POST_VARS["hidden_grade"];
$this->losal = $HTTP_POST_VARS["input_losal"];
$this->hisal = $HTTP_POST_VARS["input_hisal"];
}
function selectempty () {
$this->grade = "";
$this->losal = "";
$this->hisal = "";
}
function create () {
echo "<input type=\"hidden\" name=\"hidden_execute\"
value=\"true\">
<input type=\"hidden\" name=\"hidden_grade\"
value=\"$this->grade\">
<table cellspacing=\"8\" class=\"middle_gray\">
<tr>
<td width=\"120\" align=\"right\">untere Grenze</td>
<td><input type=\"text\" name=\"input_losal\"
value=\"$this->losal\" maxlength=\"10\"></td>
<td>$</td>
<td> </td>
<td class=\"middle_red\">";
if ($this->check and $this->check_losal ()) echo $this->error;
echo "</td>
</tr>
<tr>
<td width=\"120\" align=\"right\">obere Grenze</td>
<td><input type=\"text\" name=\"input_hisal\"
value=\"$this->hisal\" maxlength=\"10\"></td>
1268
<td>$</td>
1269
<td> </td>
1270
<td class=\"middle_red\">";
Seite 30 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Quellcode
Scotttiger
1271
1272
if ($this->check and $this->check_hisal ()) echo $this->error;
1273
1274
echo "</td>
1275
</tr>
1276
</table>";
1277
}
1278
}
1279 ?>
1280
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 31 von 39
Scotttiger
5
Screenshots der Formulare
Screenshots der Formulare
Anmerkung: Die Hintergrundfarbe wurde zur bessern Darstellung am Papier
von schwarz auf weiß geändert.
Einstiegsseite mit Auswahlmöglichkeit der Tabellen
Seite 32 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Screenshots der Formulare
Scotttiger
Auflistung aller Mitarbeiter mit einem 'A' im Namen
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 33 von 39
Scotttiger
Screenshots der Formulare
Mitarbeiter in der Detailansicht bearbeiten
Seite 34 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Screenshots der Formulare
Scotttiger
Nach allen Mitarbeitern der Abteilung 'SALES' mit Vorgesetztem 'KING' suchen
Die gefundenen Mitarbeiter zum Löschen markieren – Sicherheitsabfrage
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 35 von 39
Scotttiger
Screenshots der Formulare
Neuen Mitarbeiter hinzufügen
Seite 36 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Screenshots der Formulare
Scotttiger
Fehler – Unvollständige Eingabe
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 37 von 39
Scotttiger
Screenshots der Formulare
Ansicht der Tabelle 'Abteilungen'
Abteilung 'MARKETING' bearbeiten
Seite 38 von 39
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Screenshots der Formulare
Scotttiger
Alle Gehaltsstufen anzeigen
Gehaltsstufe bearbeiten
© Andreas Hechenblaickner, 4CDH @ HTBLA Kaindorf
Seite 39 von 39
Herunterladen