手记

一个PHP小程序

由于新公司的项目后台是使用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框架中。希望自己可以做到!为自己加油!

0人推荐
随时随地看视频
慕课网APP