• Nenhum resultado encontrado

4. ΑΝΑΛΥΣΗ ΤΟΥ ΚΩΔΙΚΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ

4.13. Αναζήτηση και εμφάνιση μίας η πολλών αναθέσεων

Από την γραμμή 13 αρχίζει το κομμάτι του κώδικα που εμφανίζει το οπτικό κομμάτι της εφαρμογής με την ετικέτα HTML και μέχρι την γραμμή 47 ο κώδικας εμφανίζει ένα κείμενο το οποίο είναι ίδιο για όλους του καθηγητές μια και αποτελεί την εισαγωγή για το δυναμικό κείμενο που θα ακολουθεί. Έτσι από την γραμμή 48 με την εντολή FOREACH αρχίζει το κομμάτι του κώδικα το οποίο εμφανίζει το δυναμικό κείμενο το οποίο αποτελείται από τις πληροφορίες που ανακτηθήκαν από τις εντολές αναζήτησης τω γραμμών 9, 10 και 11. Η εντολή foreach τελειώνει στην γραμμή 53.

Από την γραμμή 54 έως και την 65 βλέπουμε την εντολή IF η οποία ελέγχει

το περιεχόμενο του πεδίου bathmida και ανάλογα με αυτό εμφανίζει και ένα ελαφρά

αλλαγμένο κείμενο κάθε φορά. Στην συνέχεια από την γραμμή 66 έως την γραμμή 74

εμφανίζονται δυναμικά πληροφορίες όπως το εξάμηνο και οι αριθμοί τροποποίησης

τω αναθέσεων για το κάθε ακαδημαϊκό έτος. Στην συνέχεια από την γραμμή 75 έως

και την 80 βλέπουμε ακόμη μία εντολή FOREACH η οποία αναλαμβάνει να

επαναλάβει τις εντολές που περιέχονται μέσα στις αγκύλες της όσες φορές

χρειάζεται. Έτσι εμφανίζονται όλα τα στοιχεία της τροποποίησης της ανάθεσης ενός

καθηγητή. Και τέλος από την γραμμή 80 και μέχρι το τέλος εμφανίζονται κάποια

τελευταία στοιχεία όπως το όνομα του καθηγητή και οι ημερομηνίες έναρξης και

λήξη της εργασίας του στο τμήμα.

Σχήμα 6. Μηχανή αναζήτησης εμφάνισης αναθέσεων

Ο κώδικας ο οποίος εμφανίζει το παραπάνω σχήμα είναι ο εξής:

1 #!/usr/local/ActiveTcl/bin/tclsh 2 #

3 puts "Content-type: text/html\n\n"

4 source script.tcl 5 load ./fbsql

6 sql connect localhost teachman 97208 7 sql "use teachman"

8 set lo [sql "select akadetos from anathesi group by akadetos"]

9 puts <html>

10 puts <head>

11 puts <title>ΑΝΑΘΕΣΕΙΣ\ ΑΝΑΚΤΗΣΗ</title>

12 puts </head>

13 puts <body\ bgcolor="#D9F2FF">

14 puts <form\ name="a"\ action="anathesis5.tcl"\ method="post">

15 puts <table\ align="center"\ bgcolor="#D9F2FF">

16 puts <tr>

17 puts <td\ colspan="2"\ align="center"><p><b>ΠΛΗΚΤΡΟΛΟΓΗΣΤΕ\ ΤΟ\

ΟΝΟΜΑ\ ΤΟΥ\ ΚΑΘΗΓΗΤΗ</b></p>

18 puts </tr>

19 puts <tr>

20 puts <td\ colspan="2">&nbsp 21 puts </tr>

22 puts <TR>

23 puts <TD\ align="right">\ Όνομα\ </TD>

24 puts <TD\ align="left"><input\ type="text"\ name="a"></TD>

25 puts </TR>

26 puts <TR>

27 puts <TD\ align="right">\ Επίθετο\ </TD>

28 puts <TD\ align="left"><input\ type="text"\ name="b"></TD>

29 puts </TR>

30 puts <TR>

31 puts <TD\ colspan="2"\ align="center"><input\ type="submit"\

value="ΑΝΑΖΗΤΗΣΗ"></TD>

32 puts </TR>

33 puts </table>

34 puts </form>

35 puts <tr>

36 puts <td><hr></td>

37 puts </tr>

38 puts <form\ name="b"\ action="anathesis7.tcl"\ method="post">

39 puts <table\ align="center"\ bgcolor="#D9F2FF">

40 puts <tr>

41 puts <td\ colspan="4"\ align="center"><p><b>ΕΜΦΑΝΙΣΗ\

ΟΛΩΝ</b></p></td>

42 puts </tr>

43 puts <tr>

44 puts <td\ align="right">Ακαδημαϊκό\ έτος</td>

45 puts <td><select\ name="d">

46 foreach e $lo {

47 puts <option\ value="[lindex $e 0]">[lindex $e 0]

48 }

49 puts </select></td>

50 puts <td\ align="right">Επιλογή\ αναθέσεων</td>

51 puts <td\ align="left"><select\ name="qo">

52 puts <option\ value="1">ΝΕΑ\ ΑΝΑΘΕΣΗ

53 puts <option\ value="2">ΤΡΟΠΟΠΟΙΗΜΕΝΕΣ\ ΑΝΑΘΕΣΕΙΣ 54 puts </select>

55 puts </tr>

56 puts <tr>

57 puts <td\ align="right">Διάρκια\ Σύμβασης</td>

58 puts <td\ align="left"\ colspan="3"><select\ name="k">

59 puts <option\ value="1">ΣΥΜΒΑΣΗ\ ΟΡΙΣΜΕΝΟΥ\ ΧΡΟΝΟΥ 60 puts <option\ value="2">ΜΕ\ ΩΡΙΑΙΑ\ ΑΝΤΙΜΙΣΘΙΑ

61 puts <option\ value="3">ΣΥΜΒΑΣΗ\ ΟΡΙΣΜΕΝΟΥ\ ΧΡΟΝΟΥ\ ΜΕ\ ΑΜΟΙΒΗ\

ΑΠΟ\ ΕΝΗΙΣΧΥΣΗ\ ΣΠΟΥΔΩΝ\ ΠΛΗΡΟΦΟΡΙΚΗΣ

62 puts <option\ value="4">ΜΕ\ ΩΡΙΑΙΑ\ ΑΝΤΙΜΙΣΘΙΑ\ ΜΕ\ ΑΜΟΙΒΗ\ ΑΠΟ\

ΕΝΗΙΣΧΥΣΗ\ ΣΠΟΥΔΩΝ\ ΠΛΗΡΟΦΟΡΙΚΗΣ

63 puts <option\ value="5">ΑΝΑΘΕΣΗ\ ΔΙΔΑΚΤΙΚΟΥ\ ΕΡΓΟΥ\ ΜΕΛΟΥΣ\ ΕΠ 64 puts </select></td>

65 puts </tr>

66 puts <tr><td\ align="right">\ Βαθμίδα</td>

67 puts <td\ colspan="3"><select\ name="foko">

68 puts <option\ value="1">ΕΠΙΣΤΗΜΟΝΙΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΠΡΟΣΟΝΤΑ\

ΕΠΙΚΟΥΡΟΥ\ ΚΑΘΗΓΗΤΗ

69 puts <option\ value="2">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΠΡΟΣΟΝΤΑ\

ΚΑΘΗΓΗΤΗ\ ΕΦΑΡΜΟΓΩΝ

70 puts <option\ value="3">ΕΠΙΣΤΗΜΟΝΙΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΒΑΣΙΚΟ\

ΤΙΤΛΟ\ ΣΠΟΥΔΩΝ\ ΚΑΙ\ ΔΙΔΑΚΤΟΡΙΚΟ

71 puts <option\ value="4">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΒΑΣΙΚΟ\

ΤΙΤΛΟ\ ΣΠΟΥΔΩΝ\ ΚΑΙ\ ΜΕΤΑΠΤΥΧΙΑΚΟ

72 puts <option\ value="5">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΒΑΣΙΚΟ\

ΤΙΤΛΟ\ ΣΠΟΥΔΩΝ 73 puts </select>

74 puts </tr>

75 puts <td\ colspan="4"\ align="center"><input\ type="submit"\

value="ΕΜΦΑΝΙΣΗ"></td>

76 puts </tr>

77 puts </table>

78 puts </form>

79 puts </body>

80 puts </html>

Η λογική και η τεχνικές που χρησιμοποίησα σε αυτό το κομμάτι του κώδικα έχουν εξηγηθεί σε προγενέστερες αναλύσεις παρόμοιων κομματιών. Η μόνη διαφορά που θεωρώ καλό να επισημάνω είναι ότι εδώ χρησιμοποιούνται δύο διαφορετικές φόρμες όπως μπορούμε να δούμε στις γραμμές 14 και 38 οι οποίες έχουν το δικό τους ξεχωριστό κουμπί που τις υποβάλει για εκτέλεση και η κάθε μία οδηγεί σε διαφορετική σελίδα.

Πιο αναλυτικά πατώντας το κουμπί αναζήτηση οδηγούμαστε σε μία σελίδα όπου εμφανίζονται τα στοιχεία της αναζήτησης που κάναμε και καλούμαστε να επιλέξουμε αυτά που θέλουμε και στην συνέχεια μας εμφανίζεται η ανάθεση ενός και μοναδικού καθηγητή. Ενώ πατώντας το κουμπί εμφάνιση μας εμφανίζονται ανά βαθμίδα και διάρκεια σύμβασης όλες οι αναθέσεις για το ακαδημαϊκό έτος που θέλει ο χρήστης.

Ο κώδικας που εμφανίζει τα δύο κείμενα είναι γραμμένος περίπου με το ίδιο σκεπτικό. Γι’ αυτό το λόγο θα αναλύσω τον κώδικα του δεύτερου κειμένου ενώ στο τέλος αυτού του εγχειριδίου θα παρατάξω και τον κώδικα και του πρώτου κειμένου.

Έτσι ο κώδικας έχει ως εξής.

1 #!/usr/local/ActiveTcl/bin/tclsh 2 #

3 puts "Content-type: text/html\n\n"

4 source script.tcl 5 load ./fbsql

6 sql connect localhost teachman 97208 7 sql "use teachman"

8 set f2 [sql "select gen_synel_num, ar_symb_tei, ar_prok_tei, ar_trim_epitr, date2, date3, date4, date5, examino, id_teacher, lastofsimvasi, id_mathima, bathmida from anathesi where (akadetos like \"$d\") && (tropop like \"$qo\") && (lastofsimvasi =\"$k\") &&

(bathmida = \"$foko\") "]

9 foreach miden $f2 {

set a [sql "select f_name, l_name, primaryjob, epagelma, id from teacher where (id = [lindex $miden 9]) order by epagelma "]

10 }

11 puts <html>

12 puts <head>

13 puts <title>ΑΝΑΘΕΣΕΙΣ</title>

14 puts </head>

15 puts <body>

16 puts <table\ align="center"\ width=640>

17 puts <tr>

18 puts <td\ align="center">ΥΠΗΡΕΣΙΑΚΟ\ ΣΗΜΕΙΩΜΑ</td>

19 puts </tr>

20 puts <tr>

21 puts <td\ align="left">ΠΡΟΣ:\ το\ Συμβούλιο\ του\ Τ.Ε.Ι\

Καβάλας</td>

22 puts </tr>

23 puts <tr>

24 puts <td\ align="left">ΚΟΙΝ:\ το\ Συμβούλιο\ ΣΔΟ</td>

25 puts </tr>

26 puts <tr>

27 puts <td>&nbsp</td>

28 puts </td>

29 puts <tr>

30 if {$qo == 1} {

31 puts <td\ align="left">ΘΕΜΑ:\ Ανάθεση\ εκπαιδευτικού\ έργου\ σε\

ωρομίσθιο\ εκπαιδευτικο\ προσωπικο\ για\ το\ ακαδημαϊκό\ Έτος\

$d</td>

32 } elseif {$qo == 2} {

33 puts <td\ align="left">ΘΕΜΑ:\ Τροποποίηση\ Ανάθεσης\

εκπαιδευτικού\ έργου\ σε\ ωρομίσθιο\ εκπαιδευτικό\ προσωπικό\ για\

το\ Εαρινό\ Εξάμηνο\ Ακαδημαϊού\ Έτους\ $d</td>

34 }

35 puts </tr>

36 puts <tr>

37 puts <td>&nbsp</td>

38 puts </td>

39 puts <tr>

40 puts <td\ align="justify">Έχοντας\ υπόψη\ (α)\ την\ προκήρυξη\

του\ Τμήματος\ για\ την\ πρόσληψη\ ωρομίσθιου\ εκαπιδευικού\

προσωπικού\ για\ ακαδημαϊκό\ έτος\ $d\ και\ τις\ σε\ αυτήν\

αναφερόμενες\ διατάξεις\ και\ νόμους,\ (β)\ τις\ αιτήσεις\ των\

υποψηφίων\ και\ (γ)\ τις\ ανάγκες\ του\ Τμήματος,\ σας\ διαβιβάζουμε\

τις\ προτάσεις\ αναθέσεως\ εκτάκτου\ ΕΠ\ για\ το\ Ακαδημαϊκό\ Έτος\

$d</td>

41 puts </tr>

42 puts <tr>

43 puts <td>&nbsp</td>

44 puts </tr>

45 puts <tr>

46 puts <td>&nbsp</td>

47 puts </tr>

48 puts <tr>

49 if {$qo == 1} { 50 if { $k == 1 } {

51 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\ Πρόσληψη\

Εκπαιδευτικού\ Προσωπικού\ με\ σύμβαση\ ορισμένου\

χρόνου</b></p></td>

52 } elseif { $k == 2} {

53 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\ Ανάθεση\

Εκπαιδευτικού\ Προσωπικού\ με\ ωριαία\ αντιμισθια</b></p></td>

54 } elseif { $k == 3} {

55 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\ Πρόσληψη\

Εκπαιδευτικού\ Προσωπικού\ με\ σύμβαση\ ορισμένου\ χρόνου\ Με\

αμοιβή\ από\ το\ Έργο\ Ενίσχυση\ Σπουδών\ Πληροφορικής</b></p></td>

56 } elseif { $k == 4} {

57 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\ Ανάθεση\

Εκπαιδευτικού\ Προσωπικού\ με\ ωριαία\ αντιμισθια\ Με\ αμοιβή\ από\

το\ Έργο\ Ενίσχυση\ Σπουδών\ Πληροφορικής</b></p></td>

58 } elseif { $k == 5} {

59 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\

Αναθέσεις\ Διδακτικού\ Έργου\ μελών\ ΕΠ</b></p></td>

60 }

61 } elseif {$qo == 2} { 62 if { $k == 1 } {

63 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\

Τροποποίηση\ Πρόσληψης\ Εκπαιδευτικού\ Προσωπικού\ με\ σύμβαση\

ορισμένου\ χρόνου</b></p></td>

64 } elseif { $k == 2} {

65 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\

Τροποποίηση\ Ανάθεσης\ Εκπαιδευτικού\ Προσωπικού\ με\ ωριαία\

αντιμισθια</b></p></td>

66 } elseif { $k == 3} {

67 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\

Τροποποίηση\ Πρόσληψης\ Εκπαιδευτικού\ Προσωπικού\ με\ σύμβαση\

ορισμένου\ χρόνου\ Με\ αμοιβή\ από\ το\ Έργο\ Ενίσχυση\ Σπουδών\

Πληροφορικής</b></p></td>

68 } elseif { $k == 4} {

69 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\

Τροποποίηση\ Ανάθεσης\ Εκπαιδευτικού\ Προσωπικού\ με\ ωριαία\

αντιμισθια\ Με\ αμοιβή\ από\ το\ Έργο\ Ενίσχυση\ Σπουδών\

Πληροφορικής</b></p></td>

70 } elseif { $k == 5} {

71 puts <td\ align="center"\ bgcolor="#C0C0C0"><p><b>ΘΕΜΑ:\

Τροποποίηση\ Αναθέσεων\ Διδακτικού\ Έργου\ μελών\ ΕΠ</b></p></td>

72 } 73 }

74 puts </tr>

75 puts <tr>

76 puts <td\ align="left">Η\ Γενική\ Συνέλευση\ του\ Τμήματος,\ αφού\

έλαβε\ υπόψη:</td>

77 puts </tr>

78 puts <tr>

79 puts <td>

80 puts <ol>

81 puts <li>Τις\ διατάξεις\ του\ άρθρου\ 19\ του\ Ν.\ 1404/1983,\

όπως\ τροποποιήθηκε\ και\ ισχύει

82 puts <li>Τις\ διατάξεις\ του\ Π.Δ.\ 163/2002\ <<Διαδικασία\ και\

προϋποθέσεις\ πρόσληψης\ επιστημονικών\ συνεργατών,\ εργαστηριακών\

συνεργατών,\ εκπαιδευτικών\ ειδικών\ μαθημάτων\ (ΕΕΜ)\ και\ ειδικών\

συνεργατών\ στα\ Τ.Ε.Ι.>>

83 puts <li>την\ αρίθμ.\ [lindex [lindex $f2 0] 0]/[lindex [lindex

$f2 0] 4]\ πράξη\ του.

84 puts <li>Την\ αρίθμ.\ [lindex [lindex $f2 0] 1]/[lindex [lindex

$f2 0] 5]\ πράξη\ του\ Συμβουλίου\ του\ Τ.Ε.Ι.\ Καβάλας.

85 puts <li>Την\ αρίθμ.\ [lindex [lindex $f2 0] 2]/[lindex [lindex

$f2 0] 6]\ προκήρυξη\ του\ Τ.Ε.Ι.\ Καβάλας.

86 puts <li>Την\ εισήγηση\ της\ τριμελούς\ εισηγητικής\ επιτροπής\

που\ ορίσθηκε\ με\ την\ πράξη\ [lindex [lindex $f2 0] 3]/[lindex [lindex $f2 0] 7]\ της\ Γενικής\ Συέλευσης\ του\ τμήματος

87 puts </ol>

88 puts </tr>

89 puts <tr>

90 puts <td\ align="center">αποφασίζει\ ομόφωνα</td>

91 puts </tr>

92 puts <tr>

93 if {$qo == 1} {

94 puts <td\ align="justify">εγκρίνει\ τον\ πίνακα\ αξιολόγησης\ των\

υποψηφίων\ όπως\ επισυνάπτεται\ και\ εισηγείται\ στο\ Συμβούλιο\ του\

Τ.Ε.Ι.\ την\ πρόσληψη\ εκπαιδευτικού\ προσωπικού\ με\ σύμβαση\

ορισμένου\ χρόνου\ για\ το\ ακαδημαϊκό\ έτος\ $d,\ όπως\ αναφέρεται\

στη\ συνέχεια.\ Για\ κάθε\ μάθημα,\ προτείνεται\ ο\ υποψήφιος\ με\

την\ καλύτερη\ σειρά\ αξιολόγησης\ ο\ οποίος\ δε\ καλύπτει\ το\

επιτρεπόμενο\ ωράριο\ και\ δύναται\ να\ αναλάβει\ το\ έργο\ την\ ώρα\

και\ ημέρα\ που\ προβλέπεται\ στο\ ωρολόγιο\ πρόγραμμα\

μαθημάτων.</td>

95 } elseif {$qo == 2} {

96 puts <td\ align="justify">εισηγείτε\ στο\ Συμβούλιο\ του\ Τ.Ε.Ι.\

την\ τροποποίηση\ πρόσληψης\ εκπαιδευτικού\ προσωπικού\ με\ σύμβαση\

ορισμένου\ χρόνου\ για\ το\ [lindex [lindex $f2 0] 8]\ Εξάμηνο\

ακαδημαϊκού\ έτους\ $d,\ όπως\ αναφέρεται\ στη\ συνέχεια.</td>

97 }

98 puts </tr>

99 puts <tr>

100 puts <td>&nbsp</td>

101 puts </tr>

102 puts <tr>

103 if { $foko == 1} { 104 puts <tr>

105 puts <td\ align="center">ΕΠΙΣΤΗΜΟΝΙΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ με\ προσόντα\

Επικουρου\ καθηγητή</td>

106 puts </tr>

107 } elseif { $foko == 2} { 108 puts <tr>

109 puts <td\ align="center">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ με\ προσόντα\

καθηγητή\ εφαρμογών</td>

110 puts </tr>

111 } elseif { $foko == 3} { 112 puts <tr>

113 puts <td\ align="center">ΠΙΣΤΗΜΟΝΙΚΟΣ\ ΣΥΕΡΓΑΤΗΣ\ με\ βασικό\

τίτλο\ σπουδών\ και\ διδακτορικό</td>

114 puts </tr>

115 } elseif { $foko == 4} { 116 puts <tr>

117 puts <td\ align="center">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ με\ βασικό\

τίτλο\ σπουδών\ και μεταπτυχιακό</td>

118 puts </tr>

119 } elseif { $foko == 5} { 120 puts <tr>

121 puts <td\ align="center">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ με\ βασικό\

τίτλο\ σπουδών</td>

122 puts </tr>

123 }

124 puts </tr>

125 puts <tr>

126 puts <td>&nbsp</td>

127 puts </tr>

128 puts <tr>

129 puts <tr>

130 puts <td><hr></td>

131 puts </tr>

132 foreach ena $f2 {

133 set b [sql "select hoursth, hourserg, hoursask, sum(hoursth + hoursask + hourserg) from mathima where (id_teacher = [lindex $ena 9]) && (id = [lindex $ena 11]) group by id"]

134 set c [sql "select name, type from course where id=[lindex $ena 11]"]

135 puts <tr>

136 puts <td\ align="left">[lindex [lindex $a 0] 1]\ [lindex [lindex

$a 0] 0]\ ([lindex [lindex $a 0] 2])\ [lindex [lindex $a 0] 3]</td>

137 puts </tr>

138 puts <tr>

139 puts <td\ align="left">[lindex [lindex $c 0] 0]\ [lindex [lindex

$c 0] 1]</td>

140 puts </tr>

141 puts <tr>

142 puts <td\ align="left">Θεωρία\ [lindex [lindex $b 0] 0]\

ώρες</td>

143 puts </tr>

144 puts <tr>

145 puts <td\ align="left">Ασκήσεις\ πράξης\ [lindex [lindex $b 0]

2]\ ώρες</td>

146 puts </tr>

147 puts <tr>

148 puts <td\ align="left">Εργαστήριο\ [lindex [lindex $b 0] 1]\

ώρες</td>

149 puts </tr>

150 puts <tr>

151 puts <td\ align="right">Σύνολο\ [lindex [lindex $b 0] 3]\ ώρες\

την\ εβδομάδα</td>

152 puts </tr>

153 puts <tr>

154 puts <td><hr></td>

155 puts </tr>

156 }

Ο κώδικας αυτός έχει αναπτυχθεί με την τεχνική που χρησιμοποιήθηκε και για τον κώδικα που εμφανίζει τις βεβαιώσεις προϋπηρεσίας, την οποία ανέλυσα στην ενότητα 4.12. Έτσι παρατηρούμε στην γραμμή 8 την αναζήτηση πληροφοριών από τις γραμμές του πίνακα anathesi τα οποία συμφωνούν με τις προϋποθέσεις που θέτονται από την σελίδα της αναζήτησης που ανέλυσα παραπάνω και που εκτελούνται με την εντολή where.

Στην γραμμή 132 βλέπουμε για ακόμη μία φορά την εντολή foreach η οποία

καλεί τα αποτελέσματα της αναζήτησης από την βάση δεδομένων μας, που έγινε στην

γραμμή 8 με την εντολή select. Σύμφωνα με κάποια από τα στοιχεία που προέρχονται

από την αναζήτηση στη γραμμή 8, εκτελούνται δύο νέες αναζητήσεις 133 και 134 με

σκοπό την εύρεση των πληροφοριών που ζήτησε ο χρήστης από τους πίνακες

mathima και course αντίστοιχα. Έτσι η foreach επαναλαμβάνει τις εντολές που

υπάρχουν μέχρι την γραμμή 156 τόσες φορές όσες είναι και οι αναθέσεις που

υπάρχουν στον πίνακα anathesis και συμφωνούν με τις προϋποθέσεις που έθεσε ο

χρήστης. Μία λειτουργία που δεν έχουμε ξανασυναντήσει στην εφαρμογή είναι αυτή

που συναντούμε στην γραμμή 133. Εδώ βλέπουμε την εντολή SUM με την οποία

αθροίζουμε τα περιεχόμενα των πεδίων hoursth, hoursask και hourserg και στην

γραμμή 151 εμφανίζονται τα αποτελέσματα της.

5. ΠΑΡΑΘΕΣΗ ΤΟΥ ΚΩΔΙΚΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΣΤΟ ΣΥΝΟΛΟ

Documentos relacionados