由于新公司的项目后台是使用php编写的,所以作为运维必须了解php代码以及后端的一些知识。因此老板让我做一个小项目。
该项目的需求如下:
在主页面中输入文章名和内容,点击“提交”按钮后,会自动跳转到第二个页面,在该页面中显示文章名,以及将内容分句显示。后端连接mysql数据库,所提交的内容都存在mysql数据库中。
以下是页面的初步设计:
接着,我们来设计数据库。数据库名称是mydb,该库中有两张表,分别是project和project_sentence。
project表中有两个字段,分别是id和name。其中id是主键。
project_sentence表中有三个字段,分别是project_id,sentences和id。其中project_id是主键,id是外键,与project中的主键id相连。
数据库表如下:
创建数据库的sql语句如下:
mysql> create table project
-> (id int PRIMARY KEY AUTO_INCREMENT,
-> name varchar(15)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> create table project_sentence
-> (project_id int PRIMARY KEY AUTO_INCREMENT,
-> sentences varchar(255),
-> id int,
-> foreign key(id) references project(id) on delete cascade
-> );
Query OK, 0 rows affected (13.07 sec)
接下来我们就要开始写代码了。这里我们分为四个php文件。分别为提交页面submit.php,显示数据页面xianshi.php,提交数据页面shiyan.php和连接数据库页面MySQL.class.php。
各个页面的源代码如下:
submit.php
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>输入文章页面</title>
</head>
<body>
<form action="shiyan.php" method="POST">
Project: <input type="text" name="Project" />
<br>Context: <textarea name="context" rows="20" cols="80"></textarea>
<input type="submit">
</form>
</body>
</html>
xianshi.php
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>显示页面</title>
</head>
<body>
<div><a href="submit.php">返回</a></div>
<table width="500" cellpadding="6" cellspacing="6" border="1">
<tr>
<th>Project_name</th>
<th>Sentences</th>
</tr>
<?php
require_once("MySQL.class.php");
$db = new DB_mysql();
$db->db_connect();
$sql = "select p.name,ps.sentences from project p join project_sentence ps on p.id = ps.id";
$rs = $db->query($sql);
$name = null;
if($rs){
while($row = mysql_fetch_array($rs)){
if($name != $row['name']){
$name = $row['name'];
?>
<tr>
<td align="center">
<?php echo $row['name'];?>
</td>
<td align="center">
<?php echo $row['sentences'];?>
</td>
</tr>
<?php
}else{
?>
<tr>
<td>
</td>
<td align="center">
<?php echo $row['sentences'];?>
</td>
</tr>
<?php
}
}
}else{
echo "无数据";
}
?>
</table>
</body>
</html>
shiyan.php
<?php
header("Content-type: text/html; charset=utf-8");
require_once("MySQL.class.php");
$db = new DB_mysql();
$db->db_connect();
$sql="insert into project(name)VALUES('{$_POST[Project]}')";
$db->query($sql);
//获取新插入id
$id = mysql_insert_id();
$content = $_POST['context'];
//替换特殊字符保留原始字符
$content = str_replace(".",".#",$content);
$content = str_replace("?","?#",$content);
$content = str_replace("!","!#",$content);
//分解内容
$str = explode("#",$content);
//获取总数
$count = count($str)-1;
$query = "insert into project_sentence (sentences,id)values";
$items = null;
for($i = 0 ; $i < $count ; $i++) {
$items .= "('{$str[$i]}',{$id})".',';
}
$query .= rtrim($items,',');
if($db->query($query))
header("location:xianshi.php");
else
echo "插入失败";
?>
MySQL.class.php
<?php
class DB_mysql{
private $db_host = "localhost";
private $db_name = "mydb";
private $db_user = "root";
private $db_pwd = "yangyue";
//连接数据库
function db_connect(){
@mysql_connect($this->db_host,$this->db_user,$this->db_pwd) ? $this->selectdb() : die("服务链接失败");
}
function selectdb(){
@mysql_select_db($this->db_name) or die("数据库链接失败");
mysql_query("set names utf8");
}
function query($sql){
return mysql_query($sql);
}
}
?>
然后就可以访问页面了:
为确保数据是保存在数据库中,而不是通过POST或GET方式传递到第二个页面。我们去查看数据库。
至此,该项目完成。下一步需要将代码整合到codeigniter框架中。希望自己可以做到!为自己加油!