TM08 Integrating Database With A Website
TM08 Integrating Database With A Website
Administration
Level III
Based on November 2023, Curriculum Version II
Acronym..................................................................................................................................... 2
Self-check 1.............................................................................................................................. 22
Unit Two: Retrieve data from database and display on web pages ......................................... 41
Self-check................................................................................................................................. 45
Self-check 3.............................................................................................................................. 58
Reference ................................................................................................................................. 59
Developer’s Profile .................................................................................................................. 60
Acknowledgment
Ministry of Labor and Skills wish to extend thanks and appreciation to the many
representatives of TVT instructors and respective industry experts who donated their time
and expertise to the development of this Teaching, Training and Learning Materials
(TTLM).
This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:
Web database applications may be created using various approaches. However, there are a
number of components that will form essential building blocks for such applications. In other
words, a Web database application should comprise the following four layers (i.e.
components):
Browser layer
Application logic layer
Database connection layer
Database layer
Browser layer:
The three most popular browsers at the present are Mozilla Firefox (Firefox for short), Google
Chrome and Microsoft Edge.
All three browsers are graphical browsers. During the early days of the Web, a text-based
browser, called Lynx, was popular. As loading graphics over the Internet can be a slow and
time-consuming process, database performance may be affected. If an application requires a
speedy client and does not need to display graphics, then the use of Lynx may be considered.
All browsers implement the HTML standard. The discussion of HTML is beyond this chapter,
but you need to know that it is a language used to format data/documents to be displayed on
the Web.
Browsers are also responsible for providing forms for the collection of user input, packaging
the input, and sending it to the appropriate server for processing. For example, input can include
registration for site access, guest books and requests for information. HTML, Java, JavaScript
or ActiveX (for IE) may be used to implement forms.
Application logic layer
The application logic layer is the part of a Web database application with which a developer
will spend the most time. It is responsible for:
Collecting data for a query (e.g. a SQL statement).
Preparing and sending the query to the database via the database connection layer.
Retrieving the results from the connection layer.
Formatting the data for display.
Most of the application’s business rules and functionality will reside in this layer. Whereas the
browser client displays data as well as forms for user input, the application logic component
compiles the data to be displayed and processes user input as required. In other words, the
application logic generates HTML that the browser renders. Also it receives processes and
stores user input that the browser sends.
This is the component which actually links a database to the Web server. Because manual Web
database programming can be a daunting task, many current Web database building tools offer
database connectivity solutions, and they are used to simplify the connection process.
The database connection layer provides a link between the application logic layer and the
DBMS. Connection solutions come in many forms, such as DBMS net protocols, API
(Application Programming Interface [see note below]) or class libraries, and programs that are
themselves database clients. Some of these solutions resulted in tools being specifically
designed for developing Web database applications. In Oracle, for example, there are native
API libraries for connection and a number of tools, such as Web Publishing Assistant, for
developing Oracle applications on the Web.
The connection layer within a Web database application must accomplish a number of goals.
It has to provide access to the underlying database, and also needs to be easy to use, efficient,
flexible, robust, reliable and secure. Different tools and methods fulfill these goals to different
extents.
Note
An API consists of a set of interrelated subroutines that provide the functionality required to
develop programs for a target operating environment. For example, Microsoft provides
different APIs targeted at the construction of 16- and 32-bit
Windows applications. An API would provide functions for all aspects of system activity, such
as memory, file and process management. Specialized APIs are also supplied by software
vendors to support the use of their products, such as database and network management
systems.
Database layer
A Web database gateway is a bridge between the Web and a DBMS, and its objective is to
provide a Web-based application the ability to manipulate data stored in the database. Web
database gateways link stateful systems (i.e. databases) with a stateless, connectionless
protocol (i.e. HTTP). HTTP is a stateless protocol in the sense that each connection is closed
once the server provides a response. Thus, a Web server will not normally keep any record
about previous requests. This results in an important difference between a Web-based client-
server application and a traditional client-server application:
There are a number of different ways to create Web database gateways. Generally, they can be
grouped into two categories: client-side solutions and server side solutions,
Client-side solutions
The client-side solutions include two types of approaches for connections: browser extensions
and external applications.
Browser extensions are add-ons to the core Web browser that enhance and augment the
browser’s original functionality. Specific methods include plug-ins for Firefox, Chrome and
External applications are helper applications or viewers. They are typically existing database
clients that reside on the client machine and are launched by the Web browser in a particular
Web application. Using external applications is a quick and easy way to bring legacy database
applications online, but the resulting system is neither open nor portable. Legacy database
clients do not take advantages of the platform independence and language independence
available through many Web solutions. Legacy clients are resistant to change, meaning that
any modification to the client program must be propagated via costly manual installations
throughout the user base.
Server-side solutions
Server-side solutions are more widely adopted than the client-side solutions. A main reason
for this is that the Web database architecture requires the client to be as thin as possible. The
Web server should not only host all the documents, but should also be responsible for dealing
with all the requests from the client.
Displaying image.
Executing plug-ins.
The end user processes a request via a web browser installed on a web server. The
communication between a web server or browser and the end user takes place using Hypertext
Transfer Protocol (HTTP). The primary role of a web server is to store, process, and deliver
requested information or webpages to end users. It uses:
Physical Storage: All website data is stored on a physical web server to ensure its
safety. When an end user enters the URL of your website or searches it using a keyword
on a browser, a request is generated and sent to the web server to process the data.
Web browser: The role of web browsers such as Firefox, Chrome, or Internet Explorer
is to find the web server on which your website data is located. Once the browser finds
your server, it reads the request and processes the information.
A web server’s primary role is to serve web pages for a website. A web page can be rendered
from a single HTML file, or a complex assortment of resources fitted together. If you want to
host your web application on the internet, in many cases you will need a web server.
One of the most common use cases for web servers is serving files necessary for rendering a
website in a browser. When you visit http://www.google.com, you begin with entering a URL
that starts a request over the internet. This request passes through multiple layers, one or more
of which will be a web server. This web server generates a response to your request, which in
this case is the Google website, specifically the homepage. Ideally, this happens quickly and
with 24/7 availability.
Web servers act as an intermediary between the backend and the frontend, serving up resources.
While the term “web server” can refer to either the software itself or the hardware it exists on.
In practical terms, here are some personal projects that would involve a web server:
You want to make an app that connects to the internet. This list is by no means
comprehensive, and a web server is not strictly limited in the data types it can serve to
an end user. For example, a web server that serves web API requests often responds
with data in a format such as JSON.
Web servers cater to an audience with expectations of speed, availability, reliability, and more.
They have a shared purpose of serving content on the internet, and in order to be considered a
viable web server solution, the following aspects must be considered:
Speed: Your web pages should load as fast as possible. Users want their request
fulfilled immediately, otherwise you risk losing them. On a slow loading web page,
even if the user sits through the first load, every subsequent long load will exponentially
decrease their willingness to stay or visit again.
Concurrency: This refers to the handling of multiple requests coming in at the same
time. Having too many people trying to visit your website at once seems like a good
thing, but this becomes a real problem when load times slow down to a crawl and your
whole server crashes. Your physical or virtual server only has so many resources such
as RAM and CPU compute power, and web servers must use these resources efficiently.
Scalability: Scalability refers to either making your existing servers more powerful
through vertical scaling, or adding more servers to your setup through horizontal
scaling. As you grow your audience, you may reach a point where you need more than
one or two small web servers.
Ease of set up: Getting a project up and running quickly is key to the iteration of your
project. A straightforward and repeatable install process is important for the first web
server you set up, and the multiple web servers afterwards when you scale up.
Documentation: Web servers are complex. The most common setups will get you on
your feet quickly, but your needs will grow over time. Oftentimes you will need features
that are not as commonly used. When that time comes, good documentation is essential
to creating custom solutions for your needs.
Developer support: If the core developers are not committed to their own project, you
shouldn’t commit your project to theirs. This includes both plans for long term support
Community support: A core development team will handle most of the heavy lifting,
but a thriving community contributes to filling in the gaps. With open source projects,
this can mean contributions to the actual code base, but a strong community will also
answer your questions and help with your specific issues.
While web servers can offer different solutions, the solutions they offer stem from attempts to
address these same problems. These problems themselves evolve over time along with the
needs and expectations of the end user, making this a living and ever evolving list.
Web servers are primarily used to process and manage HTTP/HTTPS requests
and responses from the client system.
A web server can also perform several other functions, such as:
Store and protect website data: A web server can store and protect critical website
data from unauthorized users.
Control bandwidth to regulate network traffic: A web server can help eliminate the
downtime caused by high web traffic. Web hosts can set bandwidth to manage the rate
of data transmission over the internet and minimize the excess network traffic.
Server-side web scripting: The server-side web scripting feature enables users to
create dynamic web pages using scripting languages such as Ruby, Python, and PHP.
Virtual hosting: Web servers can also be used as virtual servers to run multiple
applications, websites, data, and other services.
Apache web server software: Apache web server or Apache HTTP server is an open-
source server that processes user requests and delivers web assets and content via
Web server: The web server accepts and processes requests from end users for static
website content. It handles requests and responses via HTTP only. Web servers are
generally helpful in serving static content or static HTML webpages. It consumes fewer
resources such as CPU or memory compared to the application server and provides a
runtime environment for web applications.
Application server: The application server can deliver web content and dynamic
content required for displaying decision support, transaction results, or real-time
Optimizing a web server requires regular monitoring of web and application servers. Outlined
below are the few benefits of monitoring and optimizing your server:
Helps solve critical problems quickly: It’s crucial to monitor web and application
servers to ensure availability and performance. Monitoring web servers provides vital
insights into application pools (worker processes, cache, and requests), connections
(current and total connections), websites (network, files), cache (memory usage, file
cache).
Optimize infrastructure resources: It helps to understand key performance metrics,
website load, so you can effectively use infrastructure resources such as CPU
utilization, network traffic, disk capacity, and more. It also provides crucial insights,
such as client connections, web server traffic and status, server load.
Template-driven database connectivity packages are offered by database vendors and third-
party developers to simplify Web database application programming. Such a package usually
consists of the following components:
The most important benefit from using a template-driven package is speed of development.
Assuming an available package has been installed and configured properly, it takes as little
time as a few hours to create a Web site that displays information directly from the database.
The structures of templates are normally predetermined by vendors or third party developers.
As a result, they only offer a limited range of flexibility and customis ability. Package vendors
provide what they feel is important functionality, but, as with most off-the-shelf tools, such
software packages may not let you create applications requiring complex operations.
The actual performance of an application should be tested and evaluated before the usefulness
of such a package is ruled out. The overhead of parsing templates may be negligible if using
high-performance machines. Other factors, such as development time or development
expertise, may be more important than a higher operational speed.
The architectures of visual building tools vary. In general, they include a user friendly GUI
(Graphical User Interface), allowing developers to build a Web database application with a
series of mouse clicks and some textual input. These tools also offer application management
so that a developer no longer needs to juggle multiple HTML documents and other API
programs manually. At the end of a building session, the tool package can generate applications
using various techniques. Some applications are coded using ODBC; some use native database
APIs for the databases they support; and others may use database net protocols.
Some of these tools create their own API, which can be used by other developers. Some
generate code that works but can still be modified and customized by developers using various
traditional IDEs, compilers and debuggers. A building tool may generate a CGI program or a
Web server API program (such as NSAPI and ISAPI). Some sophisticated tools even offer all
the options. The developer can choose what he/she wants.
Unlike native database APIs or template-driven database connectivity packages, visual Web
database development tools tend to be as open as possible. Many offer development support
for the popular databases.
Visual development tools can be of great assistance to developers who are familiar and
comfortable with visual application development techniques. They offer rapid application
development and prototyping, and an organized way to manage the application components.
Visual tools also shield the developer from low-level details of Web database application
development. As a result, a developer can create a useful Web application without the need to
know what is happening in the code levels.
Another potential drawback is cost. A good visual tool may be too expensive for a small one-
off development budget.
HTML are markup languages, basically they are set of tags like <html>, <body>, which is used
to present a website using css, and javascript as a whole. All these, happen in the clients system
will be browsing the website. Now, Connecting to a database, happens on whole another level.
It happens on server, which is where the website is hosted. So, in order to connect to the
database and perform various data related actions, you have to use server-side scripts, like php,
jsp, asp.net etc.
MySQL is a popular open source database management system commonly used in web
applications due to its speed, flexibility and reliability. MySQL employs SQL, for accessing
and processing data contained in databases. Simple web applications can be designed using a
two-tier architecture, in which a client communicates directly with a server. A web application
communicates directly with a MySQL database using the Database Connectivity API.
Essentially, it is the MySQL Connector and web application Driver that enables
communication between the website code understood by the application server, and any content
in SQL.
First of all, you must install any web server or Web Server Applications like XAMPP or
WAMP(Windows) or MAMP (Mac OS) kind of software on your computer to get a local
webserver i.e. Apache, PHP language, and MySQL database.
Steps to connect the web application to the database contains the following steps
Step 1: Design your Database and HTML form requirements for your web page
Step 2: Create a database and a table in MySQL
Step 3: Create HTML form for connecting to database
Step 4: Create a PHP page to save data from HTML form to your MySQL database
Step 5: All done!
Purpose: Generate and execute a new database file to test and understand basic database
syntax.
Computer
Windows 10 and above.
Select the components you want to install. If you’re planning to install a WordPress site with
XAMPP, you only need Apache, MySQL, PHP, and phpMyAdmin. I’ll check all the
components as I’d like to experiment with them later.
Uncheck Learn more about Bitnami option. Bitnami provides all-in-one tools to install popular
open source apps on top of XAMPP. This includes add-on modules for installing Word Press
too. However, we’ll be installing it manually here.
The XAMPP Control Panel sports a simple user interface that lists all the modules of your local
server. It allows you to Start/Stop individual modules, access their Admin area, Config files,
and Logs with just a single click. Its bottom section also displays all your actions and errors (if
any).
Click the Start button beside Apache module. If everything’s set correctly, your Apache server
should start successfully under ports 83 and 443.
Then Start the MySQL module. If you’re presented with a Windows Security Alert to whitelist
mysqld.exe, click Allow access. Like before, make sure that you’ve ticked the “Private
networks…” option.
The best way to check whether your local server has been installed and configured correctly is
to create a PHP test page, place it in XAMPP’s local host folder, and then try accessing it via
your browser.
Let’s do that now. Create a new folder called test in your C:\xampp\htdocs\ directory. This
directory can also be accessed easily by clicking the Explorer button in XAMPP Control Panel
and then going to htdocs folder.
Create a file called test.php with the code below and place it in C:\xampp\htdocs\test folder.
<head>
<title>PHP-Test</title>
</head>
<body>
</body>
</html>
Try visiting http://localhost/test/test.php in your browser. If it displays the words “Hello World!
Welcome to WPMU DEV”, then XAMPP is successfully installed and configured on your
system.
If IIS is not installed by default, you can download and install the latest version of IIS Express
for your Windows 10 or Windows 11 OS from the Microsoft website. IIS versions later than
7.0 include the new IIS Manager User interface.
1. You can now install and test your website on IIS. After installation, you will see your
web console listed in IIS Manager (inetmgr), along with a default website generated
when you enabled IIS.
Step 1: Design your Database and HTML form requirements for your web page
Filter your HTML form requirements for your contact us web page
Suppose you selected the form field Name (text input), Email (email input), Phone (number
input), and message (multi-line text). The form submit button also necessary for submitting the
form. You will get the complete form in HTML coding in step 3.
USE `db_Name`;
ALTER TABLE
Example
USE `db_contact`;
2b. you can use your web server applications to create the Database
Open a web browser (chrome, Firefox, edge, etc.,) and type this http://localhost/phpmyadmin/
or http://127.0.0.1/phpmyadmin/ for open GUI for managing DB on your computer. See the
xampp screen below how it is coming.
E.g. click on the databases new link and create your db by the name “db_contact”.
Now you have to create an HTML form. For this, you need to create a working folder first and
then create a web page with the name “contact.html”. If you install xampp your working folder
is in folder this “E:\xampp\htdocs”. You can create a new folder “contact” on your local host
working folder. Create a “contact.html” file and paste the following code.
<html>
</head>
<body>
<fieldset>
<legend>Contact Form</legend>
<p>
</p>
<p>
<label for="email">Email</label>
</p>
<p>
<label for="phone">Phone</label>
</p>
<p>
<label for="message">Message</label>
<p> </p>
<p>
</p>
</form>
</fieldset>
</body>
</html>
Now your form is ready. You may test it in your localhost link
http://localhost/contact/contact.html
For storing data in MySQL as records, you have to first connect with the DB. Connecting the
code is very simple. The mysql_connect in PHP is deprecated for the latest version therefore I
used it here mysqli_connect.
You need to place value for your localhost username and password. Normally localhost
MySQL database username is root and password blank or root. For example, the code is as
below
The “db_contact” is our database name that we created before. Then you will save the file with
“contact.php”
Quality Criteria: The web page should display the output of your database.
This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:
Step 1: Create a PHP page to save data from HTML form to your MySQL database
The contact HTML form action is on “contact.php” page. On this page, you can continue to
write code on the contact.php which was created for connecting the database with website, now
we insert records into the database.
Inserting data into your database from a form
HTML form: First we create an HTML form that need to take user input from keyboard. HTML
form is a document which stores information of a user on a web server using interactive
controls. An HTML form contains different kind of information such as username, password,
contact number, email id etc.
The elements that are used in an HTML form are check box, input box, and radio buttons,
submit buttons etc. With the help of these elements, the information of a user is submitted on
the web server. The form tag is used to create an HTML form.
Syntax:
To pass the values to next page, we use the page name with the following syntax. We can use
either GET or POST method to sent data to server.
1. List at least four different browsers that you might use to test a web application
2. Explain the different types of web programming concepts;
Hypertext Transfer Protocol (HTTP)
Authentication and Web Security
3. Describe what is a database structure?
4. What does SQL stand for?
Computer
Internet
database
Steps in Detail:
Now open your PHP file and write your PHP code to create database and a table in your
database.
<?php
$username = "root";
// Password is empty
$password = "";
// Creating a connection
$username, $password);
// Check connection
if ($conn->connect_error) {
. $conn->connect_error);
} else {
// Closing connection
$conn->close ();
If you want to see your database, just type localhost/phpmyadmin in the web browser and the
database can be found.
After connection database you need to take post variable from the form. See the below
code
$txtName = $_POST['txtName'];
$txtEmail = $_POST['txtEmail'];
$txtPhone = $_POST['txtPhone'];
$txtMessage = $_POST['txtMessage'];
When you will get the post variable then you need to write the following SQL command.
For fire query over the database, you need to write the following line
Here is PHP code for inserting data into your database from a form.
$txtName = $_POST['txtName'];
$txtEmail = $_POST['txtEmail'];
$txtPhone = $_POST['txtPhone'];
$txtMessage = $_POST['txtMessage'];
// insert in database
if($rs)
?>
Quality Criteria: The web page should display database data and information about variables
of different data types.
Task two: Use data list and repeater to maintain the data in the cosmetics webpage database
Task three: Format the data the cosmetics webpage database to display the data in a good
appearance
This unit will also assist you to attain the learning outcomes stated in the cover page.
Specifically, upon completion of this learning guide, you will be able to:
How to use the SELECT, INSERT, UPDATE, and DELETE SQL DML command statements,
defined below.
The UPDATE statement lets the database system know that you wish to update the records for
the table specified in the table_name parameter
The columns that you want to modify are listed after the SET statement and are equated to
their new updated values. Commas separate these columns
The condition in the WHERE clause dictates which rows from the mentioned columns will be
updated.
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE contact SET phone='091234' WHERE name=’ABC’;
if ($conn->query($sql) === TRUE) { echo "Record updated successfully";
} else {
$conn->close();
?>
3.2 Insertion of data in the database.
After a database and a table have been created, we can start adding data in them. The INSERT
INTO statement is used to add new records to a MySQL table.
The syntax to insert data in the database
Insert Into table_name (column1, column2, column3,...) VALUES (value1, value2,
value3,...)
If a column is AUTO_INCREMENT (like the "id" column) or TIMESTAMP (like the
"reg_date" column), it is no need to be specified in the SQL query; MySQL will automatically
add the value.
An example program to input data using a PHP language is as below:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection if
($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
<? php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection if
($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);}
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Mary', 'Moe', 'mary@example.com');";
$sql .= "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Julie', 'Dooley', 'julie@example.com')"; if ($conn-
>multi_query($sql) === TRUE) {
echo "New records created successfully";
} else { echo "Error: " . $sql . "<br>" . $conn->error;
}
Learning PHP, MySQL & JavaScript: With jury, CSS & HTML5 Robin Nixon, 2015, 5th Edition
PHP and MySQL Web Development: Second Edition By Luke Welling, Laura Thomson
URL
https://www.geeksforgeeks.org/what-is-database/
https://www.javatpoint.com/what-is-
databasehttps://www.techtarget.com/searchdatamanagement/definition/database
https://www.britannica.com/technology/database
https://opentextbc.ca/dbdesign01/chapter/chapter-sql-dml/
https://medium.com/@actualiyke/manipulation-of-user-input-851dabdac33e
http://localhost/contact/contact.html
Developer’s Profile
N Qualifica Organization/ Mobile
Name Field of Study E-mail
o tion Institution number
1 Frew Atkilt M-Tech Network & Bishoftu Polytechnic 0911787 frew.frikii@gmail.com
Information 374
College
Security