小案例:微型博客

 

# 初级案例说明

源码下载

一、结构如下

conn.php  为连接数据库文件

index.php 为首页,也是博客列表页   select * from weibo where $id order by  id desc limit 10;

edit.php  为编辑页   UPDATE weibo SET `title`='$title',`contents`='$contents' where `id`='$hid'

del.php   为删除操作页

add.php   为添加页

view.php  为详情页

二、数据库 

  字段说明 id ,hit点击量,title标题,dates日期,contents内容

CREATE TABLE `weibo` (

  `id` int(5) NOT NULL AUTO_INCREMENT,

  `hit` int(11) NOT NULL,

  `title` varchar(50) NOT NULL,

  `dates` date NOT NULL,

  `contents` text NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

三、注意点:

1.编辑时候,在表单中使用了隐藏域进行传递id

2.在搜索的时候巧妙使用了where $w ,

if(!empty($_GET['keys'])){

   // $w = `title` like $_GET['keys'];

   $w = " `title` like '%" . $_GET ['keys'] . "%' ";  //使用模糊搜索

}else{

   $w = 1;  //此句代码转换到sql语句中没有实际意义。

            //sql语句为select * from `weibo` where 1 order by id desc limit 10;

}

 

不懂请留言(微信:moka_2024)

 

index.php

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>我的微型博客</title>
</head>
<body>

    <a href="add.php">添加内容</a>
    <hr>
    <form action="" method="get">
        <input type="text" name="keys"> <input type="submit" name="subs" value="搜索">
    </form>
    <hr>
        <?php
        include 'conn.php';
        
        // 搜索时候增加了$w条件,此处借用了 sql语句中where $w order by 原理 跳过了搜索。
        if (! empty ( $_GET ['keys'] )) {
            $w = " `title` like '%" . $_GET ['keys'] . "%' ";
        } else {
            $w = 1;
        }
        
        $sql = "select * from `weibo` where $w order by id desc limit 10";
        $query = mysql_query ( $sql );
        
        while ( $res = mysql_fetch_array ( $query ) ) {
    
        ?>


    <h2>
        标题:<a href="view.php?id=<?php echo $res['id'];?>"><?php echo $res['title'];?></a>|
        <a href="edit.php?id=<?php echo $res['id'] ?>">编辑</a>|
        <a href="del.php?id=<?php echo $res['id'];?>">删除</a> |
    </h2>
    <p> <?php echo $res['dates']; ?></p>
    <p>内容:<?php echo iconv_substr($res['contents'],0,10,"utf-8"); ?>...</p>
    <hr>

    <?php
    }
    
    ?>
</body>
</html>

 

add.php

<?php
include 'conn.php';

if (!empty($_POST['sub'])){
    $title = $_POST['title'];
    $contents = $_POST['contents'];
    $sql = "insert into `weibo` (`id`,`title`,`dates`,`contents`) values (null,'$title',now(),'$contents')";
    mysql_query($sql);
    echo "插入成功";
}

?>
<form action="" method="post">
标题<input name="title" type="text"><br><br>
内容<textarea name="contents" rows="5" cols="50"></textarea><br>
<input type="submit" name="sub" value="发布">
</form>

 

conn.php

<?php
header("Content-type:text/html;charset=utf-8");

@mysql_connect("localhost","root","root")or die("连接失败"); //@为了屏蔽错误暴露
@mysql_select_db("mystudy")or die("db连接失败");
// mysql_set_charset("utf-8");
mysql_query("set names 'utf8'");

?>

 

edit.php

<?php
include 'conn.php';

//获取原来数据
if(!empty($_GET['id'])){
    $sql = " SELECT * FROM weibo WHERE `id` = '".$_GET['id']."'";
    $query = mysql_query($sql);
    $res = mysql_fetch_array($query);
}

//保存更新数据
if (!empty($_POST['sub'])){
    $hid = $_POST['hid'];
    $title = $_POST['title'];
    $contents = $_POST['contents'];
    $sql = "UPDATE weibo SET `title`='$title',`contents`='$contents' where `id`='$hid' ";
    mysql_query($sql);
    echo "<script> alert('更改成功!');location.href='index.php';</script>";
}

?>
<form action="" method="post">
<!-- 添加隐藏域来传递需要改变的id -->
<input type="hidden" name="hid" value="<?php echo $res['id'] ?>">
标题<input name="title" type="text" value="<?php echo $res['title']; ?>" /><br><br>
内容<textarea name="contents" rows="5" cols="50"><?php echo $res['contents']; ?></textarea><br>
<input type="submit" name="sub" value="发布">
</form>

 

del.php

<?php
include 'conn.php';

//删除操作

if(!empty($_GET['del'])){
    $d = $_GET['del'];
    $sql = "delete from `weibo` where `id`= '$d' ";
    mysql_query($sql);
    }
    

    echo "删除成功!";
?>
<a href="index.php">返回</a>

 

view.php

<?php
include 'conn.php';
//查询
if(!empty($_GET['id'])){
    $sql = " SELECT * FROM weibo WHERE `id` = '".$_GET['id']."'";
    $query = mysql_query($sql);
    $res = mysql_fetch_array($query);
    
    $sqlhit = "UPDATE weibo SET hit=hit+1 WHERE `id` = '".$_GET['id']."' ";
    mysql_query($sqlhit);
}

?>
<h1><?php echo $res['title']?></h1>
<h2><?php echo $res['dates']?></h2>
<h3>点击量:<?php echo $res['hit']?></h3>
<hr>
<p>
<?php echo $res['contents'] ?>
</p>

 

mystudy.sql

/*
Navicat MySQL Data Transfer

Source Server         : localhost
Source Server Version : 50540
Source Host           : localhost:3306
Source Database       : mystudy

Target Server Type    : MYSQL
Target Server Version : 50540
File Encoding         : 65001

Date: 2016-03-27 23:03:12
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `myguests`
-- ----------------------------
DROP TABLE IF EXISTS `myguests`;
CREATE TABLE `myguests` (
  `id` int(6) unsigned NOT NULL AUTO_INCREMENT,
  `firstname` varchar(30) NOT NULL,
  `lastname` varchar(30) NOT NULL,
  `email` varchar(50) DEFAULT NULL,
  `reg_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of myguests
-- ----------------------------
INSERT INTO `myguests` VALUES ('1', 'John', 'Doe', 'john@example.com', '2015-07-07 15:26:48');
INSERT INTO `myguests` VALUES ('2', 'John', 'Doe', 'john@example.com', '2015-07-07 15:27:48');
INSERT INTO `myguests` VALUES ('3', 'John', 'Doe', 'john@example.com', '2015-07-07 15:27:51');
INSERT INTO `myguests` VALUES ('4', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:24');
INSERT INTO `myguests` VALUES ('5', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:25');
INSERT INTO `myguests` VALUES ('6', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:25');
INSERT INTO `myguests` VALUES ('7', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:25');
INSERT INTO `myguests` VALUES ('8', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:37');
INSERT INTO `myguests` VALUES ('9', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:37');
INSERT INTO `myguests` VALUES ('10', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:37');
INSERT INTO `myguests` VALUES ('11', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:37');
INSERT INTO `myguests` VALUES ('12', 'John', 'Doe', 'john@example.com', '2015-07-07 15:28:37');
INSERT INTO `myguests` VALUES ('13', 'John', 'Doe', 'john@example.com', '2015-07-07 15:29:05');

-- ----------------------------
-- Table structure for `weibo`
-- ----------------------------
DROP TABLE IF EXISTS `weibo`;
CREATE TABLE `weibo` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `hit` int(11) NOT NULL,
  `title` varchar(50) NOT NULL,
  `dates` date NOT NULL,
  `contents` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of weibo
-- ----------------------------
INSERT INTO `weibo` VALUES ('1', '0', 'dddd', '2016-03-24', 'eeeee');
INSERT INTO `weibo` VALUES ('2', '4', '为什么这么慢', '2016-03-24', '为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。为啥这么慢?我也想知道原因。');
INSERT INTO `weibo` VALUES ('3', '0', '测试修改', '2016-03-24', '你做到了。。');
INSERT INTO `weibo` VALUES ('5', '0', '我的博客', '2016-03-27', '我的博客,可以了吗????我的博客,可以了吗????我的博客,可以了吗????我的博客,可以了吗????我的博客,可以了吗????我的博客,可以了吗????我的博客,可以了吗????我的博客,可以了吗????我的博客,可以了吗????我的博客,可以了吗????');

 

posted @ 2016-03-28 20:52  mokal同学  阅读(446)  评论(0编辑  收藏  举报