#2 create and populate a database && realistic and practical applications
The Chapter3 & Chapter4 of this book tells you how to create a realistic app on the web through the lab.
That is really amazing when you finished yourself. I will show you how to make it as follows.
FIRST OF ALL, we need a plan of how to make an application, generally speaking, you can following the steps like this(as we did it in the lab1):
1. Create a database and table for the app (the email list)
2. Create and edit a web form for the customer
3. Create and edit a PHP script to handle the web form
To Finish the application, we should start with the table, actually, it all starts with a database.
step 1 :
what you have to do is to use these command line with MySQL :
CREATE DATABASE elvis_store
Then you need to create a table inside the database, just like we did in the lab1, but beofore you create tables, Please
make sure you have selected the database or you will get an ERROR. This command may help you with it :
USE elvis_store
Next you can create table(s) inside this database, table structure is based on your application, In this app you can design the table like this:
CREATE TABLE email_list
(
first_name VARCHAR (20) ,
last_name VARCHAR (20) ,
email VARCHAR (60)
);
It is quite simple, yeah ? Next we will move to step2:
step2 :
make a directory to store this application, you can name it lab2 or anything you want, and add some html files && css files to it :
/*** addemail.html ***/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Make Me Elvis - Add Email</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<img src="blankface.jpg" width="161" height="350" alt="" style="float:right" />
<img name="elvislogo" src="elvislogo.gif" width="229" height="32" border="0" alt="Make Me Elvis" />
<p>Enter your first name, last name, and email to be added to the <strong>Make Me Elvis</strong> mailing list.</p>
<form method="post" action="addemail.php">
<label for="firstname">First name:</label>
<input type="text" id="firstname" name="firstname" /><br />
<label for="lastname">Last name:</label>
<input type="text" id="lastname" name="lastname" /><br />
<label for="email">Email:</label>
<input type="text" id="email" name="email" /><br />
<input type="submit" name="Submit" value="Submit" />
</form>
</body>
</html>
/*** style.css ***/
body, td, th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
If you run it on your apache Server , you will get a page like this :

Its just a simple form and serveral css. Very Simple. Now we have finished step2.
The only thing we need to notice is that this form's action = 'addemail.php' which means it will send this form to the file on the Server.
lets move to the step3. you may probably know how to do it, yes create an edit addemail.php file on the Server.
Step3:
you create the addemail.php file in the same folder and edit it like this :
/*** addemail.php ***/
<?php
/**
* Created by IntelliJ IDEA.
* User: beyond_acm
* Date: 8/20/2015
* Time: 3:00 PM
*/
$dbc = mysqli_connect("localhost","root","root",elvis_store)
or die("Error connection to MySQL Server");
echo 'Connected successful </br>'; $first_name = $_POST['firstname'];
$last_name = $_POST['lastname'];
$email = $_POST['email']; $query = "INSERT INTO email_list(first_name, last_name, email)".
"VALUES('$first_name', '$last_name', '$email')"; mysqli_query($dbc,$query)
or die("Error querying database"); echo 'Quering successful </br>';
echo 'Custom added !'; mysqli_close($dbc);
?>
If you finish it correctly , after you submit the form you will see "Connected successful Quering successful Custom added !" on the screen.
You can alse check the database in MySQL to confirm it. Use "SELECT * FROM emal_list".
what we will do next is to repeat the step2 and step3. We will need another form to send the email to the cosumer who have registered .
we will still use the email_list database, so we dont need to design another database. First we need a Form to collect data about the email.
create sendemal.html in the same folder(like lab2) :
/*** sendemail.html ***/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Make Me Elvis - Send Email</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<img src="blankface.jpg" width="161" height="350" alt="" style="float:right" />
<img name="elvislogo" src="elvislogo.gif" width="229" height="32" border="0" alt="Make Me Elvis" />
<p><strong>Private:</strong> For Elmer's use ONLY<br />
Write and send an email to mailing list members.</p>
<form method="post" action="sendemail.php">
<label for="subject">Subject of email:</label><br />
<input id="subject" name="subject" type="text" size="30" /><br />
<label for="elvismail">Body of email:</label><br />
<textarea id="elvismail" name="elvismail" rows="8" cols="40"></textarea><br />
<input type="submit" name="Submit" value="Submit" />
</form>
</body>
</html>
if you visit this page you will see sth like this :

Thats a simple form which you can input the email title and the email body, then you click submit it will send to the sendemail.php on the Web Server which we will edit next.
It can send this package email to all the register user in the email_list table. create and edit the sendemail.php as follows:
/*** sendemail.php ***/
<?php
/**
* Created by IntelliJ IDEA.
* User: beyond_acm
* Date: 8/20/2015
* Time: 6:23 PM
*/
$from = 'beyond_acm@163.com'; $subject = $_POST['subject'];
$text = $_POST['elvismail']; $dbc = mysqli_connect("localhost","root","root","elvis_store")
or die("Error connectiong to MySQL");
echo "Connecting success! </br>"; $query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query)
or die("Error querying database!");
echo "Quering success! </br>"; while( $row = mysqli_fetch_array($result) ) {
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$to = $row['email']; $msg = "Dear $first_name $last_name, \n $text"; mail($to, $subject, $msg, 'From: '.$from ); echo 'Emai sent to :'.$to. "<br/>";
}
mysqli_close($dbc);
?>
#2 create and populate a database && realistic and practical applications的更多相关文章
- #2 create and populate a database && realistic and practical applications (PART 2)
Extends from the last chapter , This chapter takes a look at some real-world problems that can occur ...
- Create a SQL Server Database on a network shared drive
(原文地址:http://blogs.msdn.com/b/varund/archive/2010/09/02/create-a-sql-server-database-on-a-network-sh ...
- [转]How to: Create a Report Server Database (Reporting Services Configuration)
本文转自:https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms157300%28v%3dsql.10 ...
- Create an Azure SQL database in the Azure portal
Create a SQL database An Azure SQL database is created with a defined set of compute and storage res ...
- [Windows Azure] How to Create and Configure SQL Database
How to Create and Configure SQL Database In this topic, you'll step through logical server creation ...
- HiveSQLException: Error while compiling statement: No privilege 'Create' found for outputs { database:default }
今天用Hive的JDBC实例时出现了HiveSQLException: Error while compiling statement: No privilege 'Create' found for ...
- [odb-users] Create schema error (unknown database schema '')
Boris Kolpackov boris at codesynthesis.comFri May 31 11:13:02 EDT 2013 Previous message: [odb-users] ...
- [置顶] How to create Oracle 11g R2 database manually in ASM?
Step 1: Specify an Instance Identifier (SID) export ORACLE_SID=maomi Step 2: Ensure That the Require ...
- Create schema error (unknown database schema '')
Andrey Devyatka 4 years ago Permalink Raw Message Hi,Please tell me, can I use the static library in ...
随机推荐
- Rest_framework之版本控制、响应器和分页器
一.访问频率补充 频率: 自定义: 1 定义一个类MyThrottles allow_request(频率限制的逻辑) ==>这两个函数都是派生出来的,继承的类里面封装的. wait(返回一个数 ...
- js正则匹配获取文件名
//获取文件名,不带后缀 var file_name=file_path.replace(/(.*\/)*([^.]+).*/ig,"$2"); //获取文件后缀 1.var Fi ...
- 如何正确配置 Nginx + PHP ???
本文转自如何正确配置 Nginx + PHP,如有侵权,请联系管理员及时删除!
- SQLServer 2012 报表服务部署配置(2)
2.当系统打开"SQL Server安装中心",则说明我们可以开始正常的安装SQL Server 2012,可以通过"计划"."安装".&q ...
- 通过CMD命令行创建和使用Android 模拟器 AVD
进行Android APP测试时,若手持android手机设备稀少的情况下,我们可以通过创建Android模拟器AVD来代替模拟android手机设备,本文就具体介绍如何创建和使用AVD. 1.创建A ...
- Codevs 1860 最大数
题目描述 Description 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 输入描述 Input Description 第一行一个正整数n. 第二行n个正整数,空格隔开 ...
- ES6, Angular,React和ABAP中的String Template(字符串模板)
String Template(字符串模板)在很多编程语言和框架中都支持,是一个很有用的特性.本文将Jerry工作中使用到的String Template的特性做一个总结. ES6 阮一峰老师有一个专 ...
- 11g 新特性 Member Kill Escalation 简介
首先我们介绍一下历史.在oracle 9i/10g 中,如果一个数据库实例需要驱逐(evict, alert 文件中会出现ora-29740错误)另一个实例时,需要通过LMON进程在控制文件(以下简称 ...
- C#去掉字符串最后面的一个标点符号的写法
keywordHtml = keywordHtml.Remove(keywordHtml.LastIndexOf(','),1);
- python_99_面向对象多态
#多态:一种接口,多种实现.主要作用:实现接口重用 #方法1: class Animal(object): def __init__(self,name): self.name=name class ...