php
Faculty of Computer Studies
KSA-M275 Web Development Using PHP and MySQL
Tutor Marked Assignment – Fall 2021 2022
Cut-Off Date: to be announced Total Marks: 100
Contents
This TMA consists of 3 questions, where you are required to answer all of the questions. The TMA will be corrected by your tutor and you will be provided with a proper feedback file to understand your mistakes and avoid them on the final exam.
Plagiarism Warning:
As per AOU rules and regulations, all students are required to submit their own TMA work and avoid plagiarism. The AOU has implemented sophisticated techniques for plagiarism detection. You must provide all references in case you use and quote another person's work in your TMA. You will be penalized for any act of plagiarism as per the AOU's rules and regulations. For the similarity, it will be considered starting from 80% and it should be as follows:
|
Similarity % |
Deduction |
|
30-49 |
30% of the achieved mark |
|
50-69 |
50% of the achieved mark |
|
70-89 |
70% of the achieved mark |
|
90-100 |
Students get zero |
Declaration of No Plagiarism by Student (to be signed and submitted by student with TMA work):
I hereby declare that this submitted TMA work is a result of my own efforts and I have not plagiarized any other person's work. I have provided all references of information that I have used and quoted in my TMA work.
Name of Student:
Signature:
Date:
|
Question-1 |
[50 marks] |
The purpose of this question is to develop a web page that prompts the user to enter three values about an isosceles triangle, the left coordinates of its base, the length of its base and the triangle height. Then the web page calculates the right coordinates of its base, the coordinates of the triangle vertexand the length of the equal sides.
Hint: You can consider that the base of the isosceles triangle is always parallel to x-axis (horizontal base).
The web page should be implemented by using only the basic HTML tags and PHP codes that you learnt in this course. The final code with 2 snapshots should be provided in your answer sheet.
The designed web page should include a title, a header, an input form for entering the required values and an output form for presenting the calculated values or a suitable message when some violations are occurred. The design and the layout of the web page are left intentionally for the student to distinguish his/her TMA form other students and to show his/her creativity in designing the web page.
The PHP part should include at least two PHP function for computing the coordinates of the triangle vertices and length of the triangle sides.
Answer
<?php
if(!isset($_POST['x1'])) $_POST['x1']='';
if(!isset($_POST['y1'])) $_POST['y1']='';
if(!isset($_POST['x2'])) $_POST['x2']='';
if(!isset($_POST['y2'])) $_POST['y2']='';
if(!isset($_POST['y3'])) $_POST['x3']='';
if(!isset($_POST['y3'])) $_POST['y3']='';
if(!isset($_POST['side'])) $_POST['side']='';
if(!isset($_POST['base'])) $_POST['base']='';
if(!isset($_POST['height'])) $_POST['height']='';
if(!isset($_POST['note'])) $_POST['note']='';
if(isset($_POST['submit']) )
{
$x1=$_POST['x1'];
$y1=$_POST['y1'];
$base=$_POST['base'];
$height=$_POST['height'];
if( $x1=='' || $y1=='' || $base==''|| $height=='')
{
$_POST['note']= " There some non filled text boxes!";
}
else
{
if(is_numeric($x1) && is_numeric($y1) && is_numeric($base) && is_numeric($height) )
{
$_POST['side']=computeSide($base,$height);
$points=computingCoordinates($x1,$y1,$base,$height);
$_POST['x2']=$points[0];
$_POST['y2']=$points[1];
$_POST['x3']=$points[2];
$_POST['y3']=$points[3];
}
else
{
$_POST['note']= " There some none numerical values!";
}
}
}
if(isset($_POST['clear']) )
{
$_POST['x1']='';
$_POST['y1']='';
$_POST['x2']='';
$_POST['y2']='';
$_POST['x3']='';
$_POST['y3']='';
$_POST['side']='';
$_POST['base']='';
$_POST['height']='';
$_POST['note']='';
}
function computingCoordinates($x1,$y1,$base,$height)
{
$x2=$x1+$base;
$y2=$y1;
$x3=$x1+$base/2;
$y3=$y1+$height;
$points = array();
array_push($points, $x2);
array_push($points,$y2);
array_push($points,$x3);
array_push($points,$y3);
return $points;
}
function computeSide($base,$height)
{
return sqrt(($height*$height)+($base*$base/4));
}
?>
<html>
<head>
<title> Isosceles Triangle System </title>
<style>
h1{color:blue; font-weight:bold;}
input{color:blue;}
label{color:red;font-weight:bold;font-size:16px;}
</style>
</head>
<body>
<h1>Isosceles Triangle System : </h1>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?> ">
<label>left coordinates of base (V1)</label>
<label> x1 = </label>
<input type = "text" name="x1" size="15" value="<?php echo $_POST['x1'] ?>">
<label> y1 = </label>
<input type = "text" name="y1" size="15" value="<?php echo$_POST['y1'] ?>">
<br><br>
<label>The triangle height:</label>
<input type = "text" name = "height" size="15" value="<?php echo $_POST['height'] ?>">
<br><br>
<label>The length of base</label>
<input type = "text" name="base" size="15" value="<?php echo $_POST['base'] ?>">
<br><br>
<input type = "submit" name = "submit" value="Submit"/>
<input type = "submit" name = "clear" value="Clear"/><br/><br/>
<label>Right coordinates of base (V2)</label>
<label> x2 = </label>
<input type = "text" name = "x2" size="15" value="<?php echo $_POST['x2'] ?>">
<label> y2 = </label>
<input type = "text" name="y2" size="15" value="<?php echo$_POST['y2'] ?>">
<br><br>
<label>The coordinates of the triangle vertex (V3)</label>
<label> x3 = </label>
<input type = "text" name = "x3" size="15" value="<?php echo $_POST['x3'] ?>">
<label> y3 = </label>
<input type = "text" name = "y3" size="15" value="<?php echo$_POST['y3'] ?>">
<br><br>
<label> The length of the equal sides = </label>
<input type = "text" name = "side" size="15" value="<?php echo$_POST['side'] ?>">
<br/><br/>
<label> Explanation = </label>
<input type = "text" name="note" size="60" style="font-size:17px;" value="<?php echo$_POST['note'] ?>">
</form>
</body>
</html>
|
Question-2 |
[20 marks] |
Blood Bank Management Information System (BBMIS) is a database management system that provides blood to the patients who need blood. BBMIS keeps some records about blood donations that facilitate the searching for a certain blood group.
In this regard, you are asked to do some research about BBMIS, select one of the aspects that managed by BBMIS and then design two database tables about this aspect [14 marks] and another database table that represents a relation between the previous two tables [6 marks]. For each table you need to:
1- Define the objective(s) of the table.
2- Design at least five fields for the table; data type and size.
3- Determine the primary key of the table.
Answer
1-
· Donor table: to store and retrieve the donor information as id, first name, last name, date of birth and blood group.
· Patient table: to store the patient information as patient ID, first name, last name, date of birth and blood group.
· Blood table: To store the donated bloods from donors and to store any patient who took blood. The information are blood id, patient id, donor id, blood group and expire date.
2-
Donor table:
|
Donor_ID varchar(10) |
First_Name Varchar(25) |
Last_Name Varchar(25) |
DoB date |
Mobile Varchar(10) |
BloodGroup Varchar(3) |
Patient table:
|
Patient_ID varchar(10) |
First_Name Varchar(25) |
Last_Name Varchar(25) |
DoB date |
Mobile Varchar(10) |
BloodGroup Varchar (3) |
Blood table:
|
Blood_ID varchar(10) |
BloodGroup varchar(3) |
ExpireDate date |
Patient_ID varchar(10) |
Donor_ID varchar(10) |
3-
|
Table |
Primary key |
|
Donor |
Donor_ID |
|
Patient |
Patient_ID |
|
Blood |
Blood_ID |
|
Question-3 |
[30 marks] |
A new company is planning to build a new database system for holding information about Railway Reservation System (RSS). ‘Passengers’, ‘Train Tickets’, and ‘Reservations’ are part of the information that the new company wants to store in the new database. These tables are shown below in figure 1, figure 2 and figure 3. The new company intends to use MySQL for building the new database.
|
Passenger ID |
Passenger Name |
Passenger Age |
Passenger Gender |
|
824 |
Ahmad |
56 |
Male |
|
585 |
Bushra |
22 |
Female |
|
826 |
Aziz |
44 |
Male |
|
647 |
Bashar |
23 |
Male |
|
492 |
Karima |
60 |
Female |
|
405 |
Dawoud |
52 |
Male |
|
812 |
Farid |
63 |
Male |
|
743 |
Fawaz |
38 |
Male |
|
413 |
Fawzi |
56 |
Male |
|
703 |
Zahra |
37 |
Female |
Figure 1: Passengers table
|
Ticket ID |
Date of Flight |
Departure Time |
Landing Time |
Destination |
|
24926 |
27/11/2020 |
18:59 |
22:00 |
Al-Dammam |
|
70547 |
8/10/2021 |
19:07 |
1:34 |
Tabuk |
|
72256 |
26/1/2021 |
23:41 |
1:20 |
Riyadh |
|
18744 |
20/7/2021 |
18:18 |
22:20 |
Riyadh |
|
44835 |
10/11/2020 |
12:55 |
15:20 |
Dhahran |
|
59459 |
11/5/2021 |
13:28 |
19:05 |
Jeddah |
|
22546 |
29/12/2020 |
18:14 |
2:42 |
Riyadh |
|
31500 |
1/6/2021 |
14:06 |
18:29 |
Jeddah |
|
40542 |
11/11/2020 |
11:24 |
14:34 |
Dhahran |
|
39696 |
12/1/2021 |
23:42 |
4:47 |
Al-Dammam |
Figure 2: Train Tickets table
|
Reservation ID |
Passenger ID |
Ticket ID |
Date Reservation |
|
853731 |
703 |
44835 |
5/11/2020 |
|
627567 |
826 |
40542 |
9/11/2020 |
|
487586 |
824 |
24926 |
20/11/2020 |
|
472258 |
812 |
22546 |
27/12/2020 |
|
153534 |
703 |
39696 |
10/1/2021 |
|
166820 |
826 |
72256 |
19/01/2021 |
|
490694 |
824 |
59459 |
5/5/2021 |
|
369987 |
743 |
31500 |
25/05/2021 |
|
247524 |
647 |
18744 |
19/07/2021 |
|
151989 |
703 |
70547 |
1/10/2021 |
Figure 3: Reservations table
Based on the above three tables, answer the following 6 questions: You need to provide for every SQL a screen shot that shows the implementation of the SQL and the result of that SQL.
1- Write an SQL statement for creating the Passengers table that is shown in figure 1. No need to write any SQL statement for adding any record to the Passengers table.
[5 marks]
2- Write an SQL statement for adding one record to the Passengers table that was created in question-1 above. The added record should be one of the records that are given in the Passengers table. [5 marks]
3- Write an SQL statement to list the names of all males passengers whose age between 30 and 50. [5 marks]
4- Write an SQL statement to list the names of all passengers who made reservations in 2020. [5 marks]
5- Write an SQL statement to list the names of all passengers whose departure time was before 16:00 and destination address is Jeddah or Riyadh. [5 marks]
6- Write an SQL statement to list the names of all passengers whose destination address is Al-Dammam. [5 marks]
Answer
1-
Create table Passengers (
Passenger_ID int(3) primary key,
Passenger_Name varchar(20) not null,
Passenger_Age int(3) not null,
Passenger_Gender varchar(6) not null
)
2-
Insert into Passengers values (824,'Ahmad',56,'Male');
3-
Select Passenger_Name
From Passengers
Where Passenger_Gender='Male'
And Passenger_Age between 30 and 50
4-
Select Passenger_Name
From Passengers, Reservations
Where Passengers.Passenger_ID=reservations.Passenger_ID
and Date_Reservation BETWEEN '2020/1/1' and '2020/12/31'
5-
Select Passenger_Name
From Passengers, Reservations ,train_tickets
Where passengers.Passenger_ID=reservations.Passenger_ID
and reservations.Ticket_ID=train_tickets.Ticket_ID
and Departure_Time <'16:00'
and Destination in ('Jeddah','Riyadh')
6-
Select Passenger_Name
From Passengers, Reservations ,Train_tickets
Where passengers.Passenger_ID=reservations.Passenger_ID
and reservations.Ticket_ID=train_tickets.Ticket_ID
and Destination ='Al-Dammam'
------
قبل الخطوات 3 الى 6
Insert into Passengers values (824,'Ahmad',56,'Male');
Insert into Passengers values (585,'Bushra',22,'Female');
Insert into Passengers values (826,'Aziz',44,'Male');
Insert into Passengers values (647,'Bashar',23,'Male');
Insert into Passengers values (492,'Karima',60,'Female');
Insert into Passengers values (405,'Dawoud',52,'Male');
Insert into Passengers values (812,'Farid',63,'Male');
Insert into Passengers values (743,'Fawaz',38,'Male');
Insert into Passengers values (413,'Fawazi',56,'Male');
Insert into Passengers values (703,'Zahra',37,'Female');
Create table Train_Tickets(
Ticket_ID int primary key, Date_of_Flight date,
Departure_Time time,
Landing_Time time, Destination char(20)) ;
Insert into Train_Tickets values(24926,'2020/11/27','18:59','22:00','Al-Dammam');
Insert into Train_Tickets values(70547,'2021/10/08','19:07','1:34','Tabuk');
Insert into Train_Tickets values(72256,'2021/1/26','23:41','1:20','Riyadh');
Insert into Train_Tickets values(18744,'2021/7/20','18:18','22:20','Riyadh');
Insert into Train_Tickets values(44835,'2020/10/11','12:55','15:20','Dhahran');
Insert into Train_Tickets values(59459,'2021/5/11','13:28','19:05','Jeddah');
Insert into Train_Tickets values(22546,'2020/12/29','18:14','2:42','Riyadh');
Insert into Train_Tickets values(31500,'2021/6/1','14:06','18:29','Jeddah');
Insert into Train_Tickets values(40542,'2020/11/11','11:24','14:34','Dhahran');
Insert into Train_Tickets values(39696,'2021/1/12','23:42','4:47','Al-Dammam');
Create table Reservations (
Reservation_ID int primary key,
Passenger_ID int ,
Ticket_ID int ,
Date_Reservation date
);
Insert into Reservations values(853731,703,44835,'2020/11/5');
Insert into Reservations values(627567,826,40542,'2020/11/9');
Insert into Reservations values(487586,824, 24926,'2020/11/20');
Insert into Reservations values(472258,812, 22546,'2020/12/27');
Insert into Reservations values(153534,703, 39696,'2021/1/10');
Insert into Reservations values(166820,826, 72256,'2021/1/19');
Insert into Reservations values(490694,824, 59459,'2021/5/5');
Insert into Reservations values(369987,743, 31500,'2021/5/25');
Insert into Reservations values(247524,647, 18744,'2021/7/19');
Insert into Reservations values(151989,703, 70547,'2021/10/1');
M275-TMA Page -3- Fall 2021 2022