0% found this document useful (0 votes)
87 views83 pages

Attendance Report Generator

This project help to attendance your students as well as maintanance attendance and also give report manually.. This project mainly used to the educational institutions.

Uploaded by

monstertime4u
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views83 pages

Attendance Report Generator

This project help to attendance your students as well as maintanance attendance and also give report manually.. This project mainly used to the educational institutions.

Uploaded by

monstertime4u
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 83

ATTENDANCE REPORT GENERATOR

A dissertation submitted to the


BHARATHIDASAN UNIVERSITY

In partial fulfillment of the requirements for the award of the

MASTER DEGREE IN COMPUTER SCIENCE

By
Name MOHAMED ABDULLA.J
Register Number P 22270819

Guided by
Mrs. S.DEVI, M.Sc., M.Phil.,

DEPARTMENT OF COMPUTER SCIENCE

THIRU. VI. KA. GOVT. ARTS COLLEGE,


TIRUVARUR – 610 003.
APRIL – 2024
CERTIFICATE
Mrs. S.DEVI, M.Sc., M.Phil.,

GUEST LECTURER IN COMPUTER SCIENCE,

THIRU. VI. KA. GOVT. ARTS COLLEGE,

TIRUVARUR.

This is to certify that this project work

entitled “ATTENDANCE REPORT GENERATOR” is submitted to

BHARATHIDASAN UNIVERSITY in partial fulfillment of the

requirements for awarding the master degree in computer science is

the original work done under my guidance during the academic year

2023-2024.

By

Name MOHAMED ABDULLA.J


Register Number P 22270819

Signature of Guide Signature of H.O.D

Viva-Voce held on _____________

Internal Examiner External Examiner


ACKNOWLEDGEMENT

I wish to place on record my deep and whole hearted gratitude

to Mrs. S. DEVI , M.Sc., M.Phil., our beloved Guest Lecturer of

Computer Science, Thiru. Vi. Ka. Govt. Arts College, Tiruvarur for her

valuable guidance for carrying out of this project at various stages

successfully.

I wish to place on record my deep and whole hearted gratitude

to Mrs. S. MAKILA, M.Sc., M.Phil., our beloved Head and Assistant

Professor of Computer Science, Thiru. Vi. Ka. Govt. Arts College,

Tiruvarur for her valuable suggestions for carrying out of this project

at various stages successfully.

I extend my thanks to Dr. P. RAJARAMAN, M.Sc., M.Phil.,

B.Ed., SLET., Ph.D., Principal, Thiru. Vi. Ka. Govt. Arts College,

Tiruvarur for his encouragement throughout the execution of this

project.

I am bound to express my sincere thanks to the Computer

Science Department Staff and Programmer for their valuable

guidance and encouragement, which helped me in the successful

completion of the project.

I am extremely thankful to MY PARENTS & FRIENDS who

have uplifted me to the level of post graduate in Computer Science.


ABSTRACT

Attendance report generator using PHP, MySQL project is a web based application

that deals with the maintenance of attendance details and generates reports for staff and

students. It is for maintaining daily basis of attendance details for students and generates the

monthly report based on the student presence of daily attendances and also maintaining

hourly basis of attendance details for staff and generates the weekly report based on the staff

presence hourly attendances.

Staff is required to create account and then gets approved and assigned class by

admin. Staff can be added their students and make the attendance of students properly. Staff

can be view the monthly report details for students based on their presence of class.

Admin can view the weekly reports details for staff based on their presence of the

classes. Admin can view each of the student monthly report and their class performance.

This system provides reduce man power and paper works. Also this provides a transparency

in the system, so that each student can view absented count and their monthly attendance

report.
CONTENTS

S. No. PARTICULARS PAGE No.

1 INTRODUCTION 1

2 PROJECT DESCRIPTION 2

3 SYSTEM CONFIGURATION 4

4 SOFTWARE DESCRIPTION 5

5 SYSTEM DESIGN 45

6 SYSTEM TESTING 56

7 OUTPUT SCREENS 60

8 SOURCE CODE 67

9
CONCLUSION 77

10 BIBLIOGRAPHY 78
1. INTRODUCTION

Attendance report generator is developed for the exclusively for the purpose of

student and staff/faculty. Normally conventional system I use maximum manual

applications. It consumes lots of time and paper. But this system totally web based, it

means that staff can enter students details into the system very easily. They can view the

details of the class this system is totally user friendly and time saving and cost effective

system. Enhances security report generation is made easy and efficient. Reduce the paper

work.

Attendance report generator in PHP is an innovative tool to maintain and

manage the attendance of students and staff/faculty generates report separately. These

tools can be software to monitor attendance details. Admin panel, student panel, and

staff‘s panel are the three sections of the project.

The user has to log in as staff/faculty or admin. From Lecturer‘s login, the user

can view and add Students, units, courses, and maintain daily Attendance records easily.

From Admin‘s login, the user has access to each and everything in the system. Admin

can also View & Add Students, maintain Attendance record and can have an overview

of the records to view total attendance to date, total students, classes, teachers, etc. Also

this provides a transparency in the system so that each student can view absented count

and their monthly attendance report.

This system makes the management of student‘s attendance easier as it is not

difficult to understand, use and navigate by the users.

1
2. PROJECT DESCRIPTION

EXISTING SYSTEM

In the existing manual system of attendance report generator in educational

institutions, if the staff need to give attendance to the students, they are supposed to need

lot of man power and time consuming. After attendance for students, they needs to create

the attendance report. Over all process of existing system contain time consuming and

paper. Some others disadvantage of Existing System.

 Lack of security of data

 Time consuming

 More man power

 More paper and pen are use

 Lot of time using in attendance

PROPOSED SYSTEM

In the proposed system of attendance report generator, the registered staff can

simply create students details anywhere and anytime providing the required details in the

college. The students report thus generated is sent to the admin. This saves a lot of time

and effort. The admin can access the student reports and staff reports delivered to them

anywhere and anytime. Also the members of students can view their attendance without

going through the entire record.

2
 Security of data

 Minimum time required

 Minimize the manual work

 Reduce a lot of time and effort

 Reduces paper work

 Friendly user interface

 Enhances security

 Report generation is made easy and efficient

FEASIBILITY STUDY

Feasibility study is an important task in system analysis. It ensure whether to

precede the development of the project or stop by conducting study on four primary

areas such as

 Economic feasibility

 Technical feasibility

 Legal feasibility

 Alternatives

SCOPE OF THE SYSTEM

 It satisfy the user requirement

 Be easy to understand by the user and operator

 Be easy to operate

 Have a good user interface

 Be expandable

3
3. SYSTEM CONFIGURATION

Before starting to design software I have to decide about the system environment

in which it has to be implemented. The environment consists of several components.

 Hardware specification

 Software specification

HARDWARE SPECIFICATION

Processor : AMD PRO A4-4350B 2.5GHz

RAM : 4 GB

Hard Disk : 50 GB

Monitor : 19.5 Lenovo

Key Board : Lenovo

Mouse : Optical Mouse

SOFTWARE SPECIFICATION

Language Used : PHP5.6, PHP8.x

Database : MYSQL 5.x

User Interface Design: HTML, CSS

Web Browser : Mozilla, Google Chrome, IE8, OPERA

Software : XAMPP

4
4. SOFTWARE DESCRIPTION

LANGUAGE SPECIFICATION: PHP

PHP is a server-side scripting language designed specifically for the web. Within

an HTML page, I can embed PHP code that will be executed each time the page is

visited. my PHP code is interpreted at the web server and generates HTML or other

output that the visitor will see. PHP is an open-source project, which means I have access

to the source code and have the freedom to use, alter, and redistribute it.

PHP code is usually processed on a web server by a PHP interpreter implemented

as a module, a daemon or as a Common Gateway Interface (CGI) executable. On a web

server, the result of the interpreted and execute PHP code which may be any type of data,

such as generated HTML or binary image data -would form the whole or part of an

HTTP response. Various web template systems, web content management systems, and

web frameworks exist which can be employed to orchestrate or facilitate the generation

of that response. Additionally, PHP can be used for many programming tasks outside of

the web context, such as standalone graphical applications and robotic drone control.

Arbitrary PHP code can also be interpreted and executed via command-line

interface(CLI).

The standard PHP interpreter, powered by the Zend Engine, is free software

released under the PHP License. PHP has been widely ported and can be deployed on

most web servers on almost every operating system and platform, free of charge.

The PHP language evolved without a written formal specification or standard

until 2014, with the original implementation acting as the de facto standard which other

implementations aimed to follow. Since 2014, work has gone on to create a formal PHP

specification.
5
Addition of the match expression

Main article: PHP syntax and semantics Match. PHP 8 introduced the statement

and is more compact for some cases. Because match is an expression, its result can be

caught into a variable or returned from a function.

Type changes and additions

PHP 8 introduced union types, a new static return type, and a new mixed type.

"Attributes'', often referred to as "annotations" in other programming languages, were

added in PHP 8, which allow metadata to be added to classes. throw was changed from

being a statement to being an expression. This allows exceptions to be thrown in places

that were not previously possible.

Standard library changes and additions

 Weak maps were added in PHP 8. A Weak Map holds references to objects, but

these references do not prevent such objects from being garbage collected. This

can provide performance improvements in scenarios where data is being caches;

this is of particular relevance for ORMs.

 Various adjustments to interfaces, such as adding support for creating Data Time

objects from interfaces, and the addition of a String able interface that can be

used for type hinting.

 Various new functions including str_contains(), str_starts_with(), and

str_ends_with();fdiv();get_debug_type(); and get_resource_id()

 Object implementation of token_get_all()

6
Additional changes

 Type‘s annotations were also added into PHP's C source code itself to allow

internal functions and methods to have "complete type information in reflection."

 Inheritance with private methods.

 Abstract methods in traits improvements.

Some of PHP's Strengths

Some of PHP's main competitors are Python, Ruby (on Rails or otherwise),

Node.js, Perl, Microsoft .NET, and Java. In comparison to these products, PHP has

many strengths, including the following:

 Performance

 Scalability

 Interfaces to many different database systems

 Built-in libraries for many common web tasks.

 Low cost

 Ease of learning and use

 Strong object-oriented support

 Portability

 Flexibility of development approach

 Availability of source code

 Availability of support and documentation

Performance

PHP is very fast. Using a single inexpensive server, I can server millions of hits per

day. It scales down to the smallest email form and up to sites such as Facebook and Easy.

7
Scalability

PHP has what Rasmus Lerdorf frequently refers to as a "shared-nothing"

architecture. This means that I can effectively and cheaply implement horizontal scaling

with large numbers of commodity servers.

Database Integration

PHP has native connections available to many database systems. In addition to

MySQL, I can directly connect to PostgreSQL, Oracle, MongoDB, and MSSQL, among

others. PHP 5 and PHP 8 also have a built-in SQL interface to flat files, called SQLite.

Using the Open Database Connectivity (ODBC) standard, I can connect to any database

that provides an ODBC driver. This includes Microsoft products and many others. In

addition to native libraries, PHP comes with a database access abstraction

layer called PHP Database Objects (PDOs), which allows consistent access and

promotes secure coding practices.

Built-in Libraries

Because PHP was designed for use on the Web, it has many built-in functions for

performing many useful web-related tasks. I can generate images on the fly, connect to

web services and other network services, parse XML, send email, work with cookies,

and generate PDF documents, all with just a few lines a code.

Cost

PHP is free. I can download the latest version at any time from

http://www.php.net for no charge.

8
Ease of learning PHP

The syntax of PHP is based on other programming languages, primarily C and

Perl. If I already know C or Perl, or a C-like language such as C++ or Java, I will be

productive using PHP almost immediately.

Object-Oriented Support

PHP version 5 had well-designed object-oriented features, which continued to be

refined and improve in PHP version 8. If I learned to program in Java or C++, I will find

the features (and generally the syntax) that I expect, such as inheritance, private and

protected attributes.

Portability

PHP is available for many different operating systems. I can write PHP code of

free UNIX-like operating systems such as Linux and FreeBSD, commercial UNIX

versions OS X, or on different versions of Microsoft Windows. Well-written code will

usually work without modification on a different system running PHP.

Flexibility of Development Approach

PHP allows I am implement simple tasks simply, and equally easily adapts to

implementing large applications using a framework based on design patterns such as

Model-View-Controller (MVC).

Source code

I have access to PHP's source code. With PHP, unlike commercial, closed-

source products, if I want to modify something or add to the language, I am free to do so.

9
I do not need to wait for the manufacturer to release patches. I also don't need to worry

about the manufacturer going out of business or deciding to stop supporting a product.

Availability of Support and Documentation

Zend Technologies (http://www.zend. HYPERLINK

"http://www.zend.com/"com), the company behind the engine that powers PHP, funds its

PHP development by offering support and related software on a commercial basis. The

PHP documentation and community are mature and rich resources with a wealth of

information to share.

Embedding PHP in HTML

"PHP is an HTML-embedded scripting language. Much of its syntax is

borrowed from java and Perl with a couple of unique PHP-specific features thrown in.th

goal of the language is to allow web developers to write dynamically generated pages

quickly". When someone visits my PHP web pages, my web server processes the PHP

code. It then sees which parts it needs to show to visitors (content and pictures) and hides

the other stuff (file operations, math calculation, etc.) This translates my PHP into

HTML. After the translation into HTML, it senses the web page to my visitor's web

browser.

It is also helpful to think of PHP in terms of what it can do for you. PHP will

allow I to: Reduce the time to create web sites.

 Create a customized user experience for visitors based on information that I have

gathered from them.

 Open up thousands of possibilities for online tools. Check out PHP HOT

SCRIPTS for examples of the great things that are possible with PHP.

10
 Allow creation of shopping carts for e-commerce websites. Before starting this

tutorial it is important that I have a basic understanding and experience in the

following:

 HTML-knowing the syntax and especially HTML forms

 Basic programming experience it will make learning PHP a great deal easier.

PHP-Syntax

Before I talk about PHP's syntax, let as first define Syntax is referring to.

SYNTAX-the rules that must be followed to write properly structured code. PHP's

syntax and semantics or similar to most other programming languages (C, java and Perl)

with the addition that all PHP code is contained with tag, of sorts. All PHP code must be

contained within the following.

PHP Code

<?php

?>
The shorthand PHP that requires shorthand support to be enabled
On I server...
<?
?>
If I am writing PHP script and plan on distributing them, I suggest that I use the

standard form (which includes the PHP) rather than the shorthand form. This will

ensure that my script will work, even when running on other servers with different

settings.

How to save my PHP pages

If I have inserted into my HTML. And want to web browser to interpret in

correctly, then I must save the file with.PHP extension, instead of the standard.Html
11
extension. So be sure to check that I am saving my files correctly. Instead of index,

Html, it should be index. PHP if there is PHP code in the file.

Example simple HTML & PHP Page

Before is an example of one of the easiest PHP and HTML page that I can create

and still follow web standards.

PHP and HTML code

<Html>
<Head>
<Title>my first PHP pages</title>
</head>
<Body>
<? Php

Echo "hello world!"


?>
</body>

</Html>
If I save this file and place in on PHP enable server and load it up in my web

browser then I should see" Hello world!" and I will be talking in greater depth about this

PHP function and many others later on in this tutorial.

The Semicolon

As I may or may not have noticed in the above example there was a semicolon

after the line of PHP code. The semicolon signifies the end of a PHP statement and

should never be forgotten. For example, if I repeated our "Hello World!" code several

times, then I would need to place a semicolon at the end statement.

12
White space

As with HTML, whitespace is ignored between PHP statements. This means it is

OK to have one line of PHP code, then 20 lines of blank space before the line of PHP. I

can also press tab to indent my code and the PHP interpreter will ignore this space as

well.

PHP-variable

If I never had any programming Algebra or scripting experience, then the concept

of variables might be a new concept to you. A detailed explanation of variables as

beyond the scope of this tutorial, but I have included a refresher crash course to guide

you.

A variable is a means of storing a value such as text string "Hello world!" or the

integer value 4. A variable can then be reused throughout my code, instead of having to

type out the actual value over and over again. In PHP I define a variable with the

following form:

$variable name = value;

If I forget the dollar sign at the beginning, it will not work. This is a common

mistake for new PHP programmers. Variables are prefixed with a dollar symbol, and a

type does not need to be specified in advance, PHP introduced type hinting that allows

functions to force their parameters to be objects of a specific class, arrays, interfaces or

callback functions. However, before PHP, type hints could not be used with scalar types

such as integer or string.

13
A Quick Variable Example

We wanted to store the values that I talked about in the above paragraph. How

would I go about doing this? I would first want to make a variable name and then set that

equal to the value I want. See our example below for the correct way to this.

PHP Code
<?php

$hello="Hello world"

$a number 4;

$another number-8;

?>

Note for programmers: PHP does not require variable to be declared before being

initialized.

PHP-echo

As I saw in the previous lesson, the PHP function echo is a means of outputting

test to the web browser. Throughout my PHP career I will be using the echo function

more than any other.

Outputting a String

To output a string, like I have done in previous lesson, use the PHP echo

function. I can place either a string variable or I can use quotes, like I do below. To

create a string that echo functions will output.

14
PHP Code

<?php

$my String="Hello!"
echo $my String; ?>
In the above example I output "Hello" without a hitch. The text I am outputting is

being sent to the user in the form of web page, so it is important that I use proper HTML

syntax.

In our second echo statement I use echo to write a valid header 5 HTML

statement. To do this the simply put the <h5> at the beginning of the string and closed it

at the end of the string. Just because I am using PHP to make web pages does not

mean I can forget about HTML syntax.

PHP Code

<?php

//this won't work because of the quotes around special H5!

echo "<h3 class="special H5">I like using PHP! </h5>";


//OK because I escaped the quotes!

echo"<h3 class=\"special H5">I like using PHP! </h5>";

//OK because I escaped the apostrophe.

echo "<h5 class=‘special H5‘>I like using PHP! </h5>‖; ?>

If I want to output a string that includes quotations either use an apostrophe(‗) or

escape the quotations by placing a slash in front of it(\‖). The slash will tell PHP that I

want the quotations to be used within the string and NOT to be used to end echo‘s string.

15
Echoing variables

Echoing variable is very easy. The PHP developers put in some extra work to

make the common task of echoing all variables nearly fool proof! No quotations are

required, even if the variable does not hold string. Below is the correct form for echoing

variables.

PHP-String

In the last lesson, PHP echo, I used string a bit, but did not talk about them in the

depth. Though out my PHP career I will be using strings a great deal, so it is important to

have a basic understanding of PHP strings.

PHP String creation

Before I can used a string I have to create it! A string can be used directly in

function or it can be stored in a variable. Below I create the exact same string twice: first

storing it into a variable and in the second case I place the string directly into a function.

PHP Code

$my string="Tisa-unlock my potential!" Echo "Tisa-unlock my potential!"


echo $my String:
In the above example the first string will be stored into the variable $my string.

While the second string will be used in the echo function and not is stored. Remember to

save my strings into variables if I plan on using them more than once! Below is the

output from our example code. They look identical just as I thought.

PHP-String Creation Single Quotes

Thus far I have created strings using double-quotes, but it is just as correct to

create a string using single-quotes, otherwise known as apostrophes.

16
PHP-String Creation Double-Quotes

We have used double-quotes and will continue them as the primary method for

forming strings. Double quotes allow for many special escaped characters to be used

that I cannot do with a single-quotes string. Once again, a backslash is used to escape

character.

PHP Code

$newline ="a newline is \n";


$return= "a carriage return is \r";
$tab="a tab is \t";
$dollar="a dollar sign is \$":
Note: If I try to escape a character that does not need to be, such as an apostrophe thenthe

backslash will show up when I output the string.

These escaped characters are not very useful for outputting a web page because

HTML ignores extra white space. A tab, newline, and carriage return are all examples of

extra (ignorable) white space.

PHP-String Creation Heredoc

The two methods above are the traditional way to create strings in most

programming languages. PHP introduced more robust string creation tool called heredoc

that lets the programmer create multi- line strings without using quotations. However,

creating a string using heredoc is more difficult can lead to problem if I do not properly

code my string! Here‘s how to do it.

17
There are a few very important things to remember when using heredoc.

 Use <<< and some identifier that I choose to begin the heredoc. In this example I

choose TEST as our identifier.

 Repeat the identifier followed by semicolon to end the heredoc string creation. In

this example that was TEST;

 The closing sequence TEST; must occur on a line by itself and cannot be

indicated!

 Another thing to note is that when I output this multi-line string to web page, it

will not span multiple lines because I did not have any <br> tags contained inside

out string! Here is the output made from the code above.

DATA TYPES

PHP stores integers in a platform-dependent range, either as a 32, 64 or 128 bit

signed integer equivalent to the C-language long type. Unsigned integers are converted

to signed values in certain situations, which is different behavior to many other

programming languages. Integer variables can be assigned using decimal (positive and

negative), octal, hexadecimal, and binary notations.

Floating point numbers are also stored in a platform-specific range. They can be

specified using floating point notation, or two forms of scientific notation. PHP has a

native Boolean type that is similar to the native Boolean types in Java and C++. Using

the Boolean type conversion rules, non-zero values are interpreted as true and zero as

false, as in Perl and C++.

Variables of the ―resource‖ type represent references to resources from external

sources. These are typically created by functions from a particular extension, and can

18
only be processed by functions from the same extension; example include file, image,

and database resources.

Arrays can contain elements of any type that PHP can handle, including

resources, objects, and even other arrays. Order is preserved in lists of values and in

hashes with both keys and values, and the two can be intermingled. PHP also supports

strings, which can be used with single quotes, double quotes, nowdoc or heredoc syntax.

Here are the most important things to know about variables in PHP

 All variables in PHP are denoted with a leading dollar sign ($).

 The value of a variable is the value of its most recent assignment.

 Variables are assigned with the = operator, with the variable on the left-hand side

and the expression to be evaluated on the right.

 Variables can, but do not need, to be declared before assignment.


 Variables in PHP do not have intrinsic types – a variable does not known in

advance whether it will be used to store a number or a string of characters.

 Variables used before they are assigned have default values.

 PHP does a good job of automatically converting types from one to another when

necessary.

 PHP variables are Perl-like. PHP has a total of eight data types which I use to

construct our variables:

 Integers: are whole numbers, without a decimal point, like 4195.

 Doubles: are floating-point numbers, like 3.14159 or 49.1.

 Booleans: have only two possible values either true or false.

 NULL: is a special type that only has one value: NULL • Strings: are sequences

of characters, like 'PHP supports string operations.

 Arrays: are named and indexed collections of other values.


19
 Objects: are instances of programmer-defined classes, which can package up

both other kinds of values and function that are specific to the class.

 Resources: are special variables that hold references to resources external to PHP

(such as database connections).

A constant is a name or an identifier for a simple value. A constant value cannot

Change during the execution of the script. By default, a constant is case-sensitive. By

convention, constant identifiers are always uppercase. A constant name starts with a

letter or underscore, followed by any number of letters, numbers, or underscores.

If I have defined a constant, it can never be changed or undefined. To define a

constant I have to use define() function and to retrieve the value of a constant, I have to

simply specifying its name. Unlike with variables, I do not need to have a

constant with a $. I can also use the function constant() to read a constant‘s value if I

wish to obtain the constant‘s name dynamically.

FUNCTIONS

PHP defines a large array of functions in the core language and many are also

available in various extensions; these functions are well documented in the online PHP

documentation. However, the built-in library has a wide variety of naming conventions

and associated inconsistencies, as described under history above.

20
Custom functions may be defined by the developer:

FunctionmyAge(int $birth Year): string

// calculate the age by subtracting the birth year from the current year.
$yearsOld date(‗Y‘) - $birthYear;
// return the age in a descriptive string.
return$yearsOld. ‗year‘. ($yearsOld != 1 ? ‗s‘:");
}
In function pointers, functions in PHP can be referenced by a string containing

their name. In this manner, normal PHP functions can be used, for example, as callbacks

or within function tables. User-defined functions may be created at any time without

being prototyped. Function may be defined inside code blocks, permitting a run-time

decision as to whether or not a function should be defined. Function calls must use

parentheses, with the exception of zero-argument class constructor functions called with

the PHP operator new, in which case parentheses are optional.

functiongetAdder(int $x): Closure


{

return function(int $y) use($x): int


{
Return $x + $y;
}:
echo $adder(2); //prints"10"

echo $adder(null); // throws an exception because an incorrect type was passed


$adder=getAdder([]); // would also throw an exception

21
By default, scalar type declarations follow weak typing principles. So, for

example, if a parameter's type is int, PHP would allow not only integers, but also

convertible numeric, strings, floats or booleans to be passed to that function, and would

convert them. However, PHP has a "strict typing" mode which, when used, disallows

such conversions for function calls and returns within a file.

Calling Functions

Look at the call to date(). This is the general form that function calls take. PHP

has an extensive library of functions I can use when developing web applications. Most

of these functions need to have some data passed to them and return some data. Now

look at the function call again:

date(‗H:I, j$ F‘)

Notice that it passes a string (text data) to the function inside a pair of

parentheses. The element within the parentheses is called the function‘s argument or

parameter. Such arguments are the input the function uses of output some specific

results.

PHP Function Arguments

Information can be passed to functions through arguments. An argument is just

like a variable. Arguments are specified after the function name, inside the parentheses. I

can add as many arguments as I want, just separate them with a comma. The following

example has a function with one argument ($fname). When the familyName() function is

called, I also pass along a name (e.g. Jani), and the name is used inside the function,

which outputs several different first names, but an equal last name:

22
PHP is a Loosely Typed Language

In the example above, notice that I did not have to tell PHP which data type the

variable is. PHP automatically associates a data type to the variable, depending on its

value. Since the data types are not set in a strict sense, I can do things like adding a string

to an integer without causing an error. In PHP 8, type declarations were added. This

gives us an option to specify the expected data type when declaring a function, and by

adding the strict declaration, it will throw a ―Fatal Error‖ if the data type mismatches.

PHP Return Type Declarations

PHP 8 also supports Type Declarations for the return statement. Like with the

type declaration for function arguments, by enabling the strict requirement, it will throw

a ―Fatal Error‖ on a type mismatch. To declare a type for the function return, add a

colon (:) and the type right before the opening curly ({) bracket when declaring the

function.

Passing Arguments by Reference

In PHP, arguments are usually passed by value, which means that a copy of the

value is used in the function and the variable that was passed into the function cannot be

changed. When a function argument is passed by reference, changes to the argument

also change the variable that was passed in. To turn a function argument into a

reference, the & operator is used.

Using the date () Function

The date() function expects the argument I pass it to be a format string.

representing the style of output I would like. Each letter in the string represents one part
23
of the date and time. H is the hour in a 24-hour format with leading zeros where required,

i is the minutes with a leading zero where required, j is the day of the month without a

leading zero, S represents the ordinal suffix (in this case the), and F is the full name of

the month.

PHP OBJECTS

Basic object-oriented programming functionality was added in PHP and

improved in PHP. This allowed for PHP to gain further abstraction, making creative

tasks easier for programmers using the language. Object handling was completely

rewritten for PHP, expanding the feature set and enhancing performance.

In previous versions of PHP, objects were handled like value types. The

drawback of this method was that code had to make heavy use of PHP‘s ―reference‖

variables if it wanted to modify an object it was passed rather than creating a copy of it.

In the new approach, objects are referenced by handle, and not by value.

PHP introduced private and protected member variables and methods, along with

abstract classes, final classes, abstract methods, and final methods. It also introduced a

standard way of declaring constructors and destructors, similar to that of other object-

oriented languages such as C++, and a standard exception handling model. Furthermore,

PHP 5 added interfaces and allowed for multiple interfaces to be implemented. There

are special interfaces that allow objects to interact with the runtime system. There is no

virtual table feature in the engine, so static variables are bound with a name instead of a

reference at compile time.

For convenience, the engine will supply a function that imports the properties of

the source object, so the programmer can start with a by-value replica of the source

object and only override properties that need to be changed.

24
The PHP source code on-the-fly into an internal format that it can execute, thus it

works as an interpreter. It is also the "reference implementation" of PHP, as PHP has no

formal specification, and so the semantics of PHP define the semantics of PHP. Due to

the complex and nuanced semantics of PHP, defined by how works, it is difficult for

competing implementations to offer complete compatibility.

PHP's single-request-per-script-execution model, and the fact the Zend Engine is

an interpreter, leads to inefficiency; as a result, various products have been developed to

help improve PHP performance.

In order to speed up execution time and not have to compile the PHP source code

every time the web page is accessed, PHP scripts can also be deployed in the PHP

engine‘s internal format by using an opcode cache, which works by caching the

compiled form of a PHP script (opcodes) in shared memory to avoid the overhead of

parsing and compiling the code every time the script runs.

While PHP is still the most popular implementation several other

implementations have been developed. Some of these are compilers or support JIT

compilation, and hence offer performance benefits over PHP at the expense of lacking

full PHP compatibility. Alternative implementations include the following:

PHP includes various free and open-source libraries in its source distribution, or

uses them in resulting PHP binary builds. PHP is fundamentally an Internet-aware

system with built-in modules for accessing File Transfer Protocol (FTP) servers and

many database servers, including PostgreSQL, MySQL, Microsoft SQL Server and

SQLite (which is an embedded database), LADP servers, and others. Numerous

functions familiar to C programmers, such as those in the studio family, are available in

standard PHP builds.

25
PHP FILE HANDLING

PHP Manipulating Files

PHP has several functions for creating, reading, uploading, and editing files.

Assume I have a text file called "webdictionary.txt", stored on the server, that looks

like this:

AJAX = Asynchronous JavaScript and XML


CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = Extensible Markup Language

Modes Description

r Open a file for read only. File pointer starts at the beginning of the file

w Open a file for write only. Erases the contents of the file or creates a new file

if it doesn't exist. File pointer starts at the beginning of the file

a Open a file for write only. The existing data in file is preserved. File pointer

starts at the end of the file. Creates a new file if the file doesn‘t exist

x Creates a new file for write only. Returns FALSE and an error if file already
exists

r+ Open a file for read/write. File pointer starts at the beginning of the file

w+ Open a file for read/write. Erases the contents of the file or creates a new file if
it doesn‘t exist. File pointer starts at the beginning of the file

a+ Open a file for read/write. The existing data in file is preserved. File pointer
starts at the end of the file. Create a new file if the file doesn‘t exist

x+ Create a new file for read/write. Returns FLASE and an error if file already
exists

26
EXCEPTION HANDLING

PHP has an exception model similar to that of other programming languages. An

exception can be thrown, and caught ("catched") within PHP Code may be surrounded in

a try block, to facilitate the catching of potential exceptions. Each try must have at least

one corresponding catch or finally block.

If an exception is thrown and its current function scope has no catch block, the

exception will "bubble up" the call stack to the calling function until it finds a matching

catch block. All finally blocks it encounters along the way will be executed. If the call

stack is unwound all the way to the global scope without encountering a matching catch

block, the program will terminate with a fatal error unless a global exception handler has

been set.

The thrown object must be an instance of the Exception class or a subclass of

Exception. Trying to throw an object that is not will result in a PHP Fatal Error. As of

PHP 8.0.0, the throw keyword is an expression and may be used in any expression

context. In prior versions it was a statement and was required to be on its own line.

Catch

A catch block defines how to respond to a thrown exception. A catch block

defines one or more types of exception or error it can handle, and optionally a variable to

which to assign the exception. (The variable was required prior to PHP 8.0.0) The first

catch block a thrown exception or error encounters that matches the type of the thrown

object will handle the object.

Multiple catch blocks can be used to catch different classes of exceptions.

Normal execution (when no exception is thrown within the try block) will continue after

that last catch block defined in sequence. Exceptions can be thrown (or re-thrown)
27
within a catch block. If not, execution will continue after the catch block that was

triggered.

When an exception is thrown, code following the statement will not be executed,

and PHP will attempt to find the first matching catch block. If an exception is not caught,

a PHP Fatal Error will be issued with an "Uncaught Exception..." message, unless a

handler has been defined with set_exception_handler().

As of PHP 8.1.0, a catch block may specify multiple exceptions using the pipe ()

character. This is useful for when different exceptions from different class hierarchies are

handled the same. As of PHP 8.0.0, the variable name for a caught exception is optional.

If not specified, the catch block will still execute but will not have access to the thrown

object.

Finally

A finally block may also be specified after or instead of catch blocks. Code

within the finally block will always be executed after the try and catch blocks, regardless

of whether an exception has been thrown, and before normal execution resumes.

One notable interaction is between the finally block and a return statement. If a

return statement is encountered inside either the try or the catch blocks, the finally block

will still be executed. Moreover, the return statement is evaluated when encountered, but

the result will be returned after the finally block is executed. Additionally, if the finally

block also contains a return statement, the value from the finally block is returned.

28
PHP BUGS DEBUGGING

Programs rarely work correctly the first time. Many things can go wrong in my

program that cause the PHP interpreter to generate an error message. I have a choice

about where those error messages go. The messages can be sent along with other

program output to the web browser. They can also be included in the web server error

log.

To make error messages display in the browser, set the display_errors

configuration directive to On. To send errors to the web server error log, set log_errors

to On. I can set them both to On if I want error messages in both places.

PHP defines some constants I can use to set the value of error_reporting such

that only errors of certain types get reported: E_ALL (for all errors except strict notices),

E_PARSE (parse errors), E_ERROR (fatal errors), E_WARNING (warning),E_NOTICE

(notice), and E_STRICT (strict notice).

While writing my PHP program, it is a good idea to use PHP-aware editors like

BBEdit or Emacs. One of the special special features of these editors is syntax

highlighting. It changes the color of different parts of my program based on what those

parts are. For example, strings are pink, keywords such as if and while are blue,

comments are grey, and variables are black.

Another feature is quote and bracket matching, which helps to make sure that my

quotes and brackets are balanced. When I type a closing delimiter such as }, the editor

highlights the opening { that it matches.

There are following points which need to be verified while debugging my program.

 Missing Semicolons – Every PHP statement ends with a semicolon (;). PHP

doesn‘t stop reading a statement until it reaches a semicolon. If I leave out the
29
semicolon at the end of a line, PHP continues reading the statement on the

following line.

 Not Enough Equal Signs – When I ask whether two values are equal in a

comparison statement, I need two equal signs (==). Using one equal sign is a

common mistake.

 Misspelled Variable Name – If I misspelled a variable then PHP understands it

as a new variable. Remember: To PHP, $test is not the same variable as $Test.

 Missing Dollar Signs – A missing dollar sign in a variable name is really hard to

see, but at least it usually results in an error messages so that I know where to

look for the problem.

 Troubling Quotes – I can have too many, too few, or the wrong kind of quotes.

So check for a balanced number of quotes.

 Missing Parentheses and curly brackets – They should always be in pairs.

 Array Index – All the arrays should start from zero instead of 1.

PHP COOKIES

 Cookies are text files stored on the client computer and they are kept of use

tracking purpose. PHP transparently supports HTTP cookies.

 There are three steps involved in identifying returning users

 Serve script sends a set of cookies to the browser. For example name, age, or

identification number etc.

 Browser stores this information on local machine for future use.

 When next time browser sends any request to web server then it sends those

cookies information to the server and server uses that information to identify the

user.

30
The Anatomy of a Cookie
Cookies are usually set in an HTTP header (although JavaScript can also set a

cookie directly on a browser). A PHP script that sets a cookie might send headers that look

something like this-

HTTP/1.1 200 OK

Date: Fri, 04 Feb 2000 21:03:38 GMT

Server: Apache/1.3.9 (UNIX) PHP/4.0b3

Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT;

path=/; domain=tutorialspoint.com

Connection: close

Content-Type: text/html

As I can see, the Set-Cookie header contains a name value pair, a GMT date, a

path and a domain. The name and value will be URL encoded. The expires field is an

instruction to the browser to ―forget‖ the cookie after the given time and date.

If the browser is configured to store cookies, it will then keep this information

until the expiry date. If the user points the browser at any page that matches the path and

domain of the cookie, it will resend the cookie to the server. The browser‘s headers

might look something like this-

GET/HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126

Accept: image/gif, */*


Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8

31
Cookie: name=xyz
A PHP script will then have access to the cookie in the environmental variables

$_COOKIE or $HTTP_COOKIE_VARS[] which holds all cookie names and values.

Above cookie can be accessed using $HTTP_COOKIE_VARS[―name‖].

Setting Cookies with PHP

PHP provided setcookie() function to set a cookie. This function requires upto

six arguments and should be called before <html> tag. For each cookie this function has

to be called separately.

Setcookie(name, value, expire, path, domain, security);


Here is the detail of all the arguyments-

 Name – This sets the name of the cookie and is stored in an environment variable

called HTTP_COOKIE_VARS. This variable is used while accessing cookies.

 Value – This sets the value of the named variable and is the content that I

actually want to store.

 Expiry – This specify a future time in seconds since 00:00:00 GMT on 1st Jan

1970. After this time cookie will become inaccessible. If this parameter is not

set then cookie will automatically expire when the Web Browser is closed.

 Path – This specifies the directories for which the cookie is valid. A single

forward slash character permits the cookie to be valid for all directories.

 Domain – This can be used to specify the domain name in very large domains

and must contain at least two periods to be valid. All cookies are only valid for

the host and domain which created them.

 Security – This can be set to 1 to specify that the cookie should only be sent by

secure transmission using HTTPS otherwise set to 0 which mean cookie can be

sent by regular HTTP.

32
PHP SESSION

A session creates a file in a temporary directory on the server where registered

session variables and their values are stored. This data will be a available to all pages on

the site during that visit.

The location of the temporary file is determined by a setting in the php.ini file

called session.save_path. Before using any session variable make sure I have setup this

path.

When a session is started following things happen:

 PHP first creates a unique identifier for that particular session which is a random

string of 32 hexadecimal numbers such as 3c7foj34c3jj973hjkop2fc937e3443.

 A cookie called PHPSESSID is automatically sent to the user‘s computer to

store unique session identification string.

 A file is automatically created on the server in the designated temporary directory

and bears the name of the unique identifier prefixed by sess_ie

sess_3c7foj34c3jj973hjkop2937e3443.

When a PHP script wants to retrieve the value from a session variable, PHP

automatically gets the unique session identifier string from the PHPSESSID cookie and

then looks in its temporary directory for the file bearing that name and a validation can

be done by comparing both values. A session ends when the user loses the browser or

after leaving the site, the server. Will terminate the session after a predetermined period

of time, commonly 30 minutes duration.

33
Starting a PHP Session

A PHP session is easily started by making a call to the session_start() function.

This function first checks if a session is already started and if none is started then it starts

one. It is recommended to put the call to session_start() at the beginning of the page.

Session variables are stored in associative array called $_SESSION[]. These

variables can be accessed during lifetime of a session.

Destroying a PHP Session

A PHP session can be destroyed by session_destroy() function. This function

does not need any argument and a single call can destroy all the session variables. If you

want to destroy a single session variable then I can use unset() function to unset a

session variable.

Turning on Auto Session

I don‘t need to call start_session() function to start a session when a user visitsmy

site if I can set session.auto_start variable to 1 in php.ini file.

Sessions without cookies

These may be a case when a user does not allow to store cookies on their

machine. So there is another method to send session ID to the browser.

Alternatively, I can use the constant SID which is defined if the sessionstarted.

If the client did not send an appropriate session cookie, it has the form session

_name=session _id. Otherwise, it expands to an empty string. Thus, I can embed it

unconditionally into URLs.

34
DESIGNING DATABASE

The first step is always to create the database, unless I want to use one from a

third party. When a database is created, it is assigned to an owner, who executed the

creation statement. Usually, only the owner (or a super user) can do anything with the

objects in that database, and in order to allow other users to use it, privileges must be

granted.

Applications should never connect to the database as its owner or a super user,

because these users can execute any query at will, for example, modifying the schema

(e.g. dropping tables) or deleting its entire content.

I may create different database users for every aspect of my application with very

limited rights to database objects. The most required privileges should be granted only,

and avoid that the same user can interact with the database in different use cases. This

means that if intruders gain access to my database using my applications credentials,

they can only effect as many changes as my application can.

Connecting to Database

I may want to establish the connections over SSL to encrypt client/server

communications for increased security, or I can use ssh to encrypt the network

connection between clients and the database server. If either of these is used, then

monitoring my traffic and gaining information about my database will be difficult for a

would-be attacker.

Connecting to a MySQL Database

This document demonstrates how to set up a connection to a MySQL database

from the NetBeans IDE. Once connected, I can begin working with MySQL in the IDE‘s

Database Explorer by creating new databases and tables, populating tables with data, and
35
running SQL queries on database structures and content. This tutorial is designed for

beginners with a basic understanding of database management, who want to apply their

knowledge to working with MySQL in NetBeans IDE.

MySQL is a popular Open Source relational database management system

(RDBMS) commonly used in web applications due to its speed, flexibility and reliability.

MySQL employs SQL, or Structured Query Language, for accessing and processing data

contained in databases.

MySQL

MySQL, the most popular Open Source SQL database management system, is

developed, distributed, and supported by Oracle Corporation.

MySQL is a database management system

A database is a structured collection of data. It may be anything from a simple

shopping list to a picture gallery or the vast amounts of information in a corporate

network. To add, access, and process data stored in a computer database, I need a

database management system such as MySQL Server. Since computers are very good at

handling large amounts of data, database management systems play a central role in

computing, as standalone utilities, or as parts of other applications.

MySQL databases are relational

A relational database stores data in separate tables rather than putting all the data

in one big storeroom. The database structures are organized into physical files optimized

for speed. The logical model, with objects such as databases, tables, views, rows, and

columns, offers a flexible programming environment. I set up rules governing the

relationships between different data fields, such as one-to-one, one-to-many, unique,

required or optional, and ―pointers‖ between different tables. The database enforces
36
these rules, so that with a well-designed database, my application never sees inconsistent,

duplicate, orphan, out-of-data, or missing data.

The SQL part of ―MySQL‖ stands for ―Structured Query Language‖. SQL is the

most common standardized language used to access databases. Depending on my

programming environment, I might enter SQL directly (for example, to generate

reports), embed SQL statements into code written in another language, or use a

language-specific API that hides the SQL syntax.

SQL is defined by the ANSI/ISO SQL Standard. The SQL standard has been

evolving since 1986 and several versions exist. In this manual, ―SQL-92‖ refers to the

standard released in 1992, ―SQL:1999‖ refers to the standard released in 1999, and

―SQL:2003‖ refers to the current version of the standard. I use the phrase ―the SQL

standard‖ to mean the current version of the SQL Standard at any time.

MySQL software is Open Source

Open Source means that it is possible for anyone to use and modify the software.

Anybody can download the MySQL software from the Internet and use it without paying

anything. If I wish, I may study the source code and change it to suit my needs. The

MySQL software uses the GPL (GNU General Public License),

http://www.fsf.org/licenses/, to define what I may and may not do with the software in

different situations. If I feel uncomfortable with the GPL or need to embed MySQL code

into a commercial application, I can buy a commercially licensed version from us.

See the MySQL Licensing Overview for more information

(http://www.mysql.com/company/legal/licensing/).

37
The MySQL Database Server is very fast, reliable, scalable, and easy to use

If that is what I am looking for, I should give it a try. MySQL Server can run

comfortably on a desktop or laptop, alongside my other applications, web servers, and so

on, requiring little or no attention. If I dedicate an entire machine to MySQL, I can adjust

the settings to take advantage of all the memory, CPU power, and I/O

capacity available. MySQL can also scale up to clusters of machines, networked

together.

MySQL Server was originally developed to handle large databases much faster

than existing solutions and has been successfully used in highly demanding production

environments for several years. Although under constant development, MySQL Server

today offers a rich and useful set of functions. Its connectivity, speed, and security make

MySQL Server highly suited for accessing databases on the Internet.

MySQL Server works in client/server or embedded systems

The MySQL Database Software is a client/server system that consists of a

multithreaded SQL server that supports different back ends, several different client

programs and libraries, administrative tools, and a wide range of application

programming interfaces (APIs). I also provide MySQL Server as an embedded

multithreaded library that I can link into my application to get a smaller, faster, easier-to-

manage standalone product.

A large amount of contributed MySQL software is available

MySQL Server has a practical set of features developed in close cooperation with

out users. It is very likely that m y favorite application or language supports the

MySQL Database Server.

38
The Main Features of MySQL

 Written in C and C++.

 Tested with a broad range of different compilers.

 For portability, configured using CMake.

 Uses multi-layered server design with independent modules.

 Designed to be fully multithreaded using kernel threads, to easily use multiple

CPUs if they are available.

 Uses very fast B-tree disk tables (MyISAM) with index compression.

 Designed to make it relatively easy to add other storage engines. This is useful ifI

want to provide an SQL interface for an in-house database.

 Uses a very fast thread-based memory allocation system.

 Executes very fast joins using an optimized nested-loop join.

 Implements in-memory hash tables, which are used as temporary tables.

 Implements SQL functions using a highly optimized class library that should be

as initialization.

Data Types

Many data types: signed/unsigned integers 1, 2, 3, 4, and 8 bytes long, FLOAT,

DOUBLE, CHAR, VARCHAR, BINARY, VARBINARY, TEXT, BLOB, DATA,

TIME, DATATIME, TIMESTAMP, YEAR, SET, ENUM, and OpenGIS spatial types.

Fixed-length and variable-length string types.

39
Statements and Functions

 Full operator and function support in the SELECT list and WHERE clause of

queries. For example:

 mysql> SELECT CONCAT(first_name,‘‘,last_name)

 FROM citizen

 WHERE income/dependents > 10000 AND age > 30;

 Full support for SQL GROUP BY and ORDER BY clauses, Support for group

functions (COUNT(), AVG(), STD(), SUM(), MAX(), MIN(), and

GROUP_CONCAT()).

 Support for LEFT OUTER JOIN and RIGHT OUTER JOIN with both standard

SQL and ODBC syntax.

 Support for aliases on tables and columns as required by standard SQL.

 Support for DELETE, INSERT, REPLACE, and UPDATA to return the number

of rows that were changed (affected), or to return the number of rows matched

instead by setting a flag when connecting to the server.

 Support for MySQL-specific SHOW statements that retrieve information about

databases, storage engines, tables, and indexes. Support for the

INFORMATION_SCHEMA database, implemented according to standard SQL.

 An EXPLAIN statement to show how the optimizer resolves a query.

 Independence of function names from table or column names, For example, ABS

is a valid column name. The only restriction is that for a function call, no spaces

are permitted between the function name and the ―(―that follows it. See Section

9.3,‖Keywords and Reserved Words‖.

 I can refer to tables from different databases in the same statement.

40
Security

 A privilege and password system that is very flexible and secure, and that enables

host-based verification.

 Password security by encryption of all password traffic when I connect to a

server.

Scalability and Limits

 Support for large databases use MySQL Server with database that contain 50

million records. I also know of users who use MySQL Server with 200,000 tables

and about 5,000,000,000 rows.

 Support for up to 64 indexes per table. Each index may consist of 1 to 16

columns or parts of columns. The maximum index width for InnoDB tables is

either 767 bytes or 3072 bytes. See Section 15.22, ―InnoDB Limits‖. The

maximum index width for MyISAM tables is 1000 bytes. See Section 16.2, ―The

MyISAM Storage Engine‖. An index may use a prefix of a column for CHAR,

VARCHAR, BLOR, or TEXT column types.

Connectivity

 Clients can connect to MySQL Server using several protocols:

 Clients can connect using TCP/IP sockets on any platform.

 On windows systems, clients can connect using named pipes if the server is

started with the named_pipe system variable enabled. Windows servers also

support shared-memory connections if started with the shared_memory system

variable enabled. Clients can connect through shared memory by using the—

protocol=memory option.

 On Unix systems, clients can connect using Unix domain socket files.

41
 MySQL client programs can be written in many languages. A client library

written in C is available for clients written in C or C++, or for any language that

provides C bindings.

 APIs for C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl are available,

enabling MySQL clients to be written in many languages. See Chapter 29,

Connectors and APIs.

 The Connector/ODBC (MyODBC) interface provides MySQL support for client

programs that use ODBC (Open Database Connectivity) connections. For

example, I can use MS Access to connect to my MySQL server. Clients can be

run on Windows or Unix. Connector/ODBC source is available. All ODBC

2.5 functions are supported, as are many others, See MySQL Connector/ODBC

Developer Guide.

 The Connector/J interface provides MySQL support for Java client programs that

use JDBC connections. Clients can be run on Windows or Unix. Connector/J

source is available. See MySQL Connector/J 5.1 Developer Guide.

 MySQL Connector/NET enables developers to easily create .NET applications

that require secure, high-performance data connectivity with MySQL. It

implements the required ADO.NET interfaces and integrates into ADO.NET

aware tools. Developers can build applications using their choice of .NET

languages. MySQL Connector/NET is a fully managed ADO.NET driver written

in 100% pure C#. See MySQL Connector/NET Developer Guide.

Localization

 The server can provide error messages to clients in many languages. See Section

10.12, ― Setting the Error Message Language‖.

 Full support for several different character sets, including latinl (cp1252),
42
german, big5, ujis, several Unicode character sets, and more. For example, the

Scandinavian characters ―a‖, ―a‖ and ―o‖ are permitted in table and column

names.

 All data is saved in the chosen character set.

 Sorting and comparisons are done according to the default character set and

collation. Is possible to change this when the MySQL server is started (see

Section 10.3.2, ―Server Character Set and Collation‖). To see an example of very

advanced sorting, look at the Czech sorting code. MySQL Server supports many

different character sets that can be specified at compile time and runtime.

 The server time zone can be changed dynamically, and individual clients can

specify their own time zone. See Section 5.1.15, ―MySQL Server Time Zone

Support‖.

Clients and Tools

 MySQL includes several client and utility programs. These include both

command-line programs such as mysqldump and mysqladmin, and graphical

programs such as MySQL Workbench.

 MySQL Server has built-in support for SQL statements to check, optimize, and

repair tables. These statements are available from the command line through the

mysqlcheck client. MySQL also includes myisamchk, a very fast command-line

utility for performing these operations on MyISAM tables. See Chapter 4,

MySQL Programs.

 MySQL programs can be invoked with the –help or -? option to obtain online

assistance.

43
Features Added in MySQL 5.0

The following features have been added to MySQL 5.0:

1. Data dictionary. MySQL now incorporate a transactional data dictionary that

stores information about database objects. In previous MySQL releases, dictionary data

was stored in metadata files and non-transactional tables. For more information.

2. Atomic data definition statements (Atomic DDL). An atomic DDL statement

combines the data dictionary updates, storage engine operations, and binary log write

sassociated with a DDL operation into a single, atomic transaction. For more information.

3. Upgrade procedure. Previously, after installation of a new version of MySQL,

the MySQL server automatically upgrades the data dictionary tables at the next startup,

after which the DBA is expected to invoke mysql_upgrade manually to upgrade the

system tables in the mysql schema, as well as objects in other schemas such as the sys

schema and user schemas.

44
5. SYSTEM DESIGN

System analysis is the performance management and documentation of activities

related to the life cycle phases of any software namely:

 The Study Phase

 The Design Phase

 The Development Phase

 The Implementation Phase

 Testing Phase

Software Analysis starts with a preliminary analysis and later switches on to a

detailed one. During the preliminary analysis the Analyst takes a quick look at what is

needed and whether the cost benefits. Detailed analysis studies in depth all the cornered

factors, which builds and strengthens the software.

SRS

The introduction of the Software Requirements Specification (SRS) provided an

overview of the entire SRS with purpose, scope, definitions, acronyms, abbreviations,

references and overview of the SRS. The aim of this document is to gather and analyze

and give an in-depth insight of the complete requirements of our project by defining the

requirements in detail. Nevertheless, it also concentrates on the capabilities required to

run out project on different high-level software features.

System Analysis and Design

System design is the second step in the system life cycle, in which overall design

of the system is achieved. The functionalities of the system is designed and studied in

this phase. The first step is designing of program specification. This determines the

45
various data inputs to the system, data flow and the format in which output is to be

obtained.

Design phase is a transmission phase because it is a transition from user oriented

document to computer data. The activity in the design phase is the allocation of functions

to manual operations, equipment and computer programs. Flow charts are prepared in the

study time and are decomposed until all functions in the system perform evidently.

Design is a multi-step process that focuses on data structures, software

architecture; procedural details (algorithms etc.) and links between the modules. The

design process goes through logical and physical stages. In logical design review are

made linking existing system and specification gathered. The physical plan specifies any

hardware and software requirements, which satisfies the local design.

Modularization of task is made in this phase. The success of any integrated

system depends on the planning of each and every fundamental module. Usually a

project is revised in step by step sequence. Inter-phase management of such module is

also important. Software design methodology changes continually as new methods,

better analysis and broader understanding evolve.

Various techniques for software design do exit with the availability of criteria for

design quality. Software design leads three technical activities-design, code and test.

Each activity transforms information, which validates the software. The design system

converts theoretical solution introduction by the feasibility study into a logical reality.

46
TABLE DESIGN

DATABASE NAME : ATTENDANCE

Table Name: Admin

Field Name Data Type Size


ID INT 11
NAME VARCHAR 50
USER_NAME VARCHAR 30
PASSWORD VARCHAR 40

Table Name: Attendances

Field Name Data Type Size


ID INT 11
CLASS_ID INT 11
STUDENT_REGISTER_NO VARCHAR 30
ATTENDANCE TINYINT 1
DATE DATE -
DAY_ORDER VARCHAR 30
HOUR VARCHAR 30

Table Name: Calendar

Field Name Data Type Size


ID INT 11
DATE INT 11
MONTH INT 11
YEAR INT 11
STAFF_ID INT 11
CLASS_ID INT 11
OPEN_ATTENDANCE TINYINT 1
CLOSE_ATTENDANCE TINYINT 1

47
Table Name: Classes

Field Name Data Type Size


ID INT 11
NAME VARCHAR 60
INCHARGE_STAFF_ID INT 11
DEPARTMENT_NAME VARCHAR 30
SEMESTER VARCHAR 10
ACADEMIC_YEAR VARCHAR 20
IS_AVAILABLE TINYINT 1
NO_OF_STUDENTS INT 30

Table Name: Staff

Field Name Data Type Size


ID INT 11
NAME VARCHAR 50
ALIAS VARCHAR 30
EMAIL VARCHAR 11
PASSWORD VARCHAR 11

Table Name: Students

Field Name Data Type Size


ID INT 11
NAME VARCHAR 60
ROLL_NO INT 40
REGISTER_NO VARCHAR 50
CLASS_ID INT 11
STAFF_ID INT 11

48
Table Name: Staff Attendance

Field Name Data Type Size


ID INT 11
CLASS_ID INT 11
ATTENDANCE_STAFF_ID INT 11
SUBJECT VARCHAR 50
TOPIC VARCHAR 100
DATE DATE -

DAY_ORDER VARCHAR 30
HOUR VARCHAR 30

49
USE CASE DIAGRAM

STUDENTS:

Login

Search

View
Report

Update
Profile

Logout

50
STAFFS:

Register

Login

Add
Students

Open & Close


Attendance

Attendance
Report

Logout

51
ADMIN:

Login

Manage Classes

Manage Staff

Manage
Students

Manage
Attendance

View Report

Logout

52
ACTIVITY DIAGRAM

ADMIN PROCESS:

Login

NO
Is
Valid?
YES

Class Staff Students

Create
Report
Update
View
Delete
View

Logout

53
STAFF PROCESS:

Login

Register

NO
Is
Valid?

YES

Students Attendance

Register
Create
Update No
Delete Open
?

Yes

Class
Report

View

Logout

54
Students Process:

Search

Report

Daily Report Monthly Report

View

End

55
6. SYSTEM TESTING

Testing is a process of checking whether the developed system is working

according to the original objectives and requirements.

Testing is a set of activities that can be planned in advance and conducted

systematically. Testing is vital to the success of the system. System testing makes a

logical assumption that if all the parts of the system are correct, the global will be

successfully achieved. In adequate testing if not testing leads to errors that may not

appear even many months. This creates two problems,

 The time lag between the cause and the appearance of the problem.

 The effect of the system errors on the files and records within the system.

A small system error can conceivably explode into a much larger problem

Effective testing early in the purpose translates directly into long term cost savings from

a reduced number of errors. Another reason for system testing is its utility, as a user-

oriented vehicle before implementation. The best programs are worthless if it produces

the correct outputs. No other test can be more crucial. Following this step, a variety of

tests are conducted.

 Unit testing

 Integration testing

 Validation testing

56
UNIT TESTING

A program represents the logical elements of a system. For a program to run

satisfactorily, it must compile and test data correctly and tie in properly with other

programs. Achieving an error free program is the responsibility of the programmer.

Program testing checks for two types of errors: syntax and logical. Syntax error is a

program statement that violates one or more rules of the language in which it is written.

An improperly defined field dimension or omitted keywords are common syntax errors.

These errors are shown through error message generated by the computer. For Logic

errors the programmer must examine the output carefully.

When a program is tested, the actual output is compared with the expected

output. When there is a discrepancy the sequence of instructions must be traced to

determine the problem. The process is facilitated by breaking the program into self-

contained portions, each of which can be checked at certain key points. The idea is to

compare program values against desk-calculated values to isolate the problems.

FUNCTIONAL TESTING

Functional testing of an application is used to prove the application delivers

correct results, using enough inputs to give an adequate level of confidence that will

work correctly for all sets of inputs. The functional testing will need to prove that the

application works for each client type and that personalization function work correctly.

57
NON-FUNCTIONAL TESTING

This testing used to check that an application will work in the operational

environment.

Non-functional testing includes:

 Load testing

 Performance testing

 Usability testing

 Reliability testing

 Security testing

WHITE BOX TESTING

White box testing, sometimes called glass-box testing is a test case design

method that uses the control structure of the procedural design to derive test cases.

Using white box testing method, the software engineer can derive test cases.

BLACK BOX TESTING

Black box testing, also called behavioral testing, focuses on the functional

requirements of the software. That is, black testing enables the software engineer to

derive sets of input conditions that will fully exercise all functional requirements for a

program. Black box testing is not alternative to white box techniques. Rather it is a

complementary approach that is likely to uncover a different class of errors than white

box methods. Black box testing attempts to find errors in the following categories.

58
IMPLEMENTATION

System implementation is the process of making the newly designed system fully

operational and consistent in performance. The following steps have been followed in

the implementation of the system.

 Implementation in planning

 User Training

As the part of implementation, the system is taken the site and Loaded on to

client's computer. Some of the user's level, exposure to computer etc. these users are

trained first and they run the system for a month. A detailed documentation is prepared

for the employees and they trained to access the software. These users are trained first

and they can run the system for a month.

After installation of software, the hardware specifications are checked. If

hardware specifications are satisfactory, then the software is loaded for pilot run. User

training starts at this time itself. Users will be given a user manual, which documents

how to use the system and all the exception handling procedures.

59
7. OUTPUT SCREENS

Fig: 7.1-Screenshot for home page

Fig:7.2-Screenshot for step of creating proper attendance report

60
Fig:7.3-Screenshot for manage staff by admin module:

Fig:7.4-Screenshot for manage class details by admin

61
Fig:7.5-Screenshot for add class details form by admin

Fig:7.6-Screenshot for view staff individual report by admin

62
Fig:7.7-Screenshot for view students report lists by admin

Fig:7.8-Screenshot for staff registration form

63
Fig:7.9-Screen shot for open and close class attendance by staff

Fig:7.10-Screen shot for view class attendance list by staff

64
Fig:7.11-Screenshot for students attendance list by staff

Fig:7.12-Screenshot for manage students by staff

65
Fig:7.13-Screen shot for students search form on home page

Fig:7.14-Screen shot for view students report by students

66
8. SOURCE CODE

Database connectivity source code:

<?php
$con = mysqli_connect("localhost","root","","gymnsb");

// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>

Database schema source code:

-- phpMyAdmin SQL Dump


-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Feb 04, 2024 at 02:46 PM
-- Server version: 10.4.27-MariaDB
-- PHP Version: 8.1.12

--
-- Database: `attendance`
--
-- Table structure for table `admin`
--

CREATE TABLE `admin` (


`id` int(11) NOT NULL,
`name` varchar(30) NOT NULL,
`user_name` varchar(30) NOT NULL,
`password` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `admin`
--
-- Table structure for table `attendance`
--

CREATE TABLE `attendance` (


`id` int(30) NOT NULL,
`class_id` int(30) NOT NULL,
`student_register_no` varchar(30) NOT NULL,
67
`attendance` tinyint(1) NOT NULL,
`date` date NOT NULL,
`day_order` varchar(30) NOT NULL,
`hour` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `attendance`

-- Table structure for table `attendance_register`


--

CREATE TABLE `attendance_register` (


`id` int(11) NOT NULL,
`date` int(11) NOT NULL,
`month` int(11) NOT NULL,
`year` int(11) NOT NULL,
`staff_id` int(11) NOT NULL,
`class_id` int(11) NOT NULL,
`open_attendance` int(11) NOT NULL,
`close_attendance` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `attendance_register`

--
-- Table structure for table `classes`
--

CREATE TABLE `classes` (


`id` int(30) NOT NULL,
`name` varchar(60) NOT NULL,
`incharge_staff_id` int(30) NOT NULL,
`department_name` varchar(50) NOT NULL,
`semester` varchar(10) NOT NULL,
`academic_year` varchar(20) NOT NULL,
`is_available` tinyint(1) DEFAULT NULL,
`no_of_students` int(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `classes`
--
-- Table structure for table `staffs`
--

CREATE TABLE `staffs` (


`id` int(30) NOT NULL,
`name` varchar(50) NOT NULL,

68
`alias` varchar(30) DEFAULT NULL,
`email` varchar(30) NOT NULL,
`password` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `staffs`

--
-- Table structure for table `staff_attendance`
--

CREATE TABLE `staff_attendance` (


`id` int(30) NOT NULL,
`class_id` int(30) NOT NULL,
`attendance_staff_id` int(30) NOT NULL,
`subject` varchar(50) NOT NULL,
`topic` varchar(100) DEFAULT NULL,
`date` date NOT NULL,
`day_order` varchar(30) NOT NULL,
`hour` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `staff_attendance`
--
-- Table structure for table `students`
--

CREATE TABLE `students` (


`id` int(30) NOT NULL,
`name` varchar(60) NOT NULL,
`roll_no` int(40) DEFAULT NULL,
`register_no` varchar(50) NOT NULL,
`class_id` int(30) NOT NULL,
`staff_id` int(30) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Indexes for table `admin`
--
ALTER TABLE `admin`
ADD PRIMARY KEY (`id`);

--
-- Indexes for table `attendance`
--
ALTER TABLE `attendance`
ADD PRIMARY KEY (`id`);

69
--
-- Indexes for table `attendance_register`
--
ALTER TABLE `attendance_register`
ADD PRIMARY KEY (`id`);

--
-- Indexes for table `classes`
--
ALTER TABLE `classes`
ADD PRIMARY KEY (`id`),
ADD KEY `incharge_staff_id` (`incharge_staff_id`);

--
-- Indexes for table `staffs`
--
ALTER TABLE `staffs`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `staff_email` (`email`),
ADD UNIQUE KEY `staff_alias` (`alias`);

--
-- Indexes for table `staff_attendance`
--
ALTER TABLE `staff_attendance`
ADD PRIMARY KEY (`id`);

--
-- Indexes for table `students`
--
ALTER TABLE `students`
ADD PRIMARY KEY (`id`),
ADD KEY `class_id` (`class_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `admin`
--
ALTER TABLE `admin`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `attendance`
--
ALTER TABLE `attendance`
MODIFY `id` int(30) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;

70
--
-- AUTO_INCREMENT for table `attendance_register`
--
ALTER TABLE `attendance_register`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;

--
-- AUTO_INCREMENT for table `classes`
--
ALTER TABLE `classes`
MODIFY `id` int(30) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;

--
-- AUTO_INCREMENT for table `staffs`
--
ALTER TABLE `staffs`
MODIFY `id` int(30) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=30;

--
-- AUTO_INCREMENT for table `staff_attendance`
--
ALTER TABLE `staff_attendance`
MODIFY `id` int(30) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `students`
--
ALTER TABLE `students`
MODIFY `id` int(30) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=68;
COMMIT;

Admin login source code:

<?php
extract($_POST);
session_start();
include('db.php');

if (isset($submit))
{

$query = mysqli_query($con, "SELECT * FROM admin WHERE


password='$password' and user_name='$user_name'");
$row = mysqli_fetch_array($query);
$num_row = mysqli_num_rows($query);

if ($num_row > 0)
{
$_SESSION['id']=$row['id'];
71
header('location:admin');

}
else
{
echo "<div class='alert alert-danger alert-dismissible' role='alert'>
Invalid Username and Password
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>&times;</span>
</button>
</div>";
}
}
?>

Staff registration source code:

<?php
include('db.php');
extract($_POST);
if(isset($submit))
{
echo "<div>
'$staff_password',,'$staff_confirm_password'
</div>";
if($staff_password === $staff_confirm_password)
{
$email_query = "select email from staffs";
$email_query = mysqli_query($con,$email_query);
while($row=mysqli_fetch_array($email_query)){
if($row['email']==$staff_email) {
echo "<div class='alert alert-danger alert-dismissible' role='alert'>
this Email'$staff_email' already used
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>&times;</span>
</button>
</div>";
}
}
}
else
{
echo "<div class='alert alert-danger alert-dismissible' role='alert'>
PASSWORD AND CONFIRM PASSWORD COUND'T MATCH
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>&times;</span>
</button>
</div>";
}
$insert_staff="insert into staffs
values('','$staff_name','$staff_alias','$staff_email','$staff_password')";
72
$result = mysqli_query($con,$insert_staff);
if($result){
echo "successfully run the results";
header("location:index.php?info=staff_login");
}
}
?>

Students search form source code:

session_start();
extract($_POST);
if(isset($submit)){
$_SESSION['reg.no'] = $text;
header("location:students");
}
$reg_no = $_SESSION['reg.no'];
$retrieve_students = mysqli_query($con,"select * from students where register_no =
'$reg_no'");
$student_row = mysqli_fetch_array($retrieve_students);

Manage class source code:

<table class='table table-responsive table-bordered table-striped table-hover'


style=margin:15px;>
<tr>
<th>S.No</th>
<th>Class name</th>
<th>Incharge_staff</th>
<th>Semester</th>
<th>View students</th>
<th>Action</th>
</tr>
<?php
$i=1;
$class_query = "select * from classes" ;
$class_rows = mysqli_query($con,$class_query);
while($class_row=mysqli_fetch_array($class_rows)){
?>
<tr>
<td><?php echo "$i";?></td>
<td><?php echo "$class_row[name]";?></td>
<?php
$staff_id = $class_row["incharge_staff_id"];
$staff_query="select name from staffs where id='$staff_id'";
$staff_rows=mysqli_query($con,$staff_query);
$staff_row=mysqli_fetch_array($staff_rows);
?>
<td><?php echo "$staff_row[name]";?></td>
<td><?php echo "$class_row[semester]";?></td>
<td><div class="btn btn-info btn-sm"><a href="index.php?info=students&class_id=<?php
73
echo $class_row['id']?>&class_name=<?php echo $class_row['name']?>"
style="color:black;">View Students</a></div></td>
<td>
<div class="btn btn-info dtn-md"><a
href="index.php?info=admin_edit_class&class_id=<?php echo $class_row['id']?>"
style="color:black;">Edit</a></div>
<div class="btn btn-danger btn-md"><a href="index.php?info=classes&delete_id=<?php
echo $class_row['id'];?>" style="color:black;">Delete</a></div>
</td>
</tr>
<?php
$i++;
}
?>

</table>

Manage student source code:

<?php
@$class_id = $_GET['class_id'];
@$class_name = $_GET['class_name'];
if(isset($class_id)){
$staff_query = mysqli_query($con,"select incharge_staff_id from classes where id =
'$class_id'");
$staff_id = mysqli_fetch_array($staff_query);
$staff_name_query = mysqli_query($con,"select name from staffs where
id='$staff_id[incharge_staff_id]'");
$staff_name = mysqli_fetch_array($staff_name_query);
}
?>
<section id="admin_class" class="admin_class sections-bg">
<div class="container" data-aos="fade-up">

<div class="section-header">
<div class="row">
<div class="col-md-6">
<h2><?php echo $class_name;?></h2>
</div>
<div class="col-md-6">
Incharge Name:<?php echo $staff_name['name'];?>
</div>
</div>

</div>

<table class='table table-responsive table-bordered table-striped table-hover'


style=margin:15px;>
<tr>
74
<th>S.No</th>
<th>Student Name</th>
<th>Register no</th>
<th>Report</th>
</tr>
<?php
$i=1;
if(isset($class_id)){
$student_query = mysqli_query($con,"select * from students where class_id =
'$class_id'");
while($student_row=mysqli_fetch_array($student_query)){

?>
<tr>
<td><?php echo "$i";?></td>
<td><?php echo "$student_row[name]";?></td>
<td><?php echo "$student_row[register_no]";?></td>
<td> <div class="btn btn-success btn-md" onclick="report()">Report</div> </td>
</tr>
<?php
$i++;
}
}
?>

</table>
</div>
</section>

Manage staff source code:

<?php
@$staff_delete_id = $_GET['delete_id'];
if(isset($staff_delete_id)){
$delete_query = mysqli_query($con,"delete from staffs where id='$staff_delete_id'");
if(isset($delete_query)){
echo "<div class='alert alert-success alert-dismissible' role='alert'>
DELETE SUCCESSFULLY!
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>&times;</span>
</button>
</div>";
}
}

?>
<section id="admin_staff" class="admin_staff sections-bg">
<div class="container" data-aos="fade-up">
<div class="section-header">
<h2>staff</h2>
</div>
75
<table class='table table-bordered table-striped table-hover table-responsive'
style=margin:15px;>
<tr>
<th>S.No</th>
<th>Staff name</th>
<th>Alias</th>
<th>Email</th>
<th>Report</th>
<th>Action</th>
</tr>
<?php
$i=1;
$staff_query = "select * from staffs" ;
$staff_rows = mysqli_query($con,$staff_query);
while($staff_row=mysqli_fetch_array($staff_rows)){
?>
<tr>
<td><?php echo "$i";?></td>
<td><?php echo "$staff_row[name]";?></td>
<td><?php echo "$staff_row[alias]";?></td>
<td><?php echo "$staff_row[email]";?></td>
<td>
<a class="btn btn-success btn-md" href="index.php?info=staff_report&staff_id=<?php
echo $staff_row['id']?>">Report</a>
</td>
<td>
<div class="btn btn-danger btn-md"><a style="color:black;"
href="index.php?info=staffs&delete_id=<?php echo $staff_row['id']?>">Delete</a></div>
</td>
</tr>
<?php
$i++;
}
?>
</table>
</div>

</section>

76
9. CONCLUSION

Normally conventional systems are uses maximum manual applications. It

consumes lots of time and paper. But this system totally web based, it means that staff

can enter students details into the system very easily. They can view the details of the

class this system is totally user friendly and time saving and cost effective system.

Enhances security report generation is made easy and efficient. Reduce the paper work.

This attendance Report Generator project in focuses mainly the maintenance of

attendance details and generates reports for staff and students. Also override the

problems in manual way to the maintaining attendance and practicing attendance report

for staff and students.

77
10. BIBLIOGRAPHY

BOOKS REFERENCES

PHP: The Complete Reference : Steve Holzner

Tata McGraw hill Edition 2008.

PHP: A Beginners guides : Vikram Vaswan

Tata McGraw hill Edition 2009.

PHP & MYSQL Bible : Steve Suching, Tim Converse Joy Park

Wiely Publication

WEBSITE REFERENCES

 www.w3Schools.com

 www.tutorialspoint.com

 www.Udemy.com

 www.StackOverflow.com

 www.Codeacademy.com

78

You might also like