PHP開發 小型論壇教學之資料庫搭建

建立資料庫

我們建立一個名為'mybbs'資料庫

程式碼如下

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
mysqli_set_charset($conn,'utf8'); //设定字符集
// 检测连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
// 创建数据库
$sql = "CREATE DATABASE mybbs";
if (mysqli_query($conn, $sql)) {
    echo "数据库创建成功";
} else {
    echo "数据库创建失败: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

然後建立我們的論壇版塊表'forums'

這個表中存放的是我們都發布了那些論壇

## post #欄位類型INT6#5020050id#論壇的名稱論壇的簡介#論壇的主題論壇的創建時間#

程式碼如下

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mybbs";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,'utf8'); //设定字符集
// 检测连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
// 使用 sql 创建数据表
$sql = "CREATE TABLE forums (
 id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 `forum_name` varchar(50) NOT NULL,
  `forum_description` varchar(200) NOT NULL,
  `subject` varchar(50) NOT NULL,
  `last_post_time` datetime NOT NULL
 );";
if (mysqli_query($conn, $sql)) {
    echo "数据表 forums 创建成功";
} else {
    echo "创建数据表错误: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

 建立我們的用戶表「member」表中存放我們的用戶,沒有的話是不允許發佈論壇和貼文的,

字段姓名idforum_name
forum_description        subject                  
varchar
varchar

varchar

datetime

欄位長度
欄位描述
log_time    INTvarcharvarcharvarchardatetime 註冊時間
欄位名稱idusername
#password   email  
欄位類型




#欄位長度 #11505050
#欄位描述用戶ID註冊填寫的用戶名稱註冊填寫的密碼註冊填寫的郵箱

#建立程式碼如下


<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mybbs";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,'utf8'); //设定字符集
// 检测连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
// 使用 sql 创建数据表
$sql = "CREATE TABLE member (
 id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `log_time` datetime NOT NULL
);";
if (mysqli_query($conn, $sql)) {
    echo "数据表 member 创建成功";
} else {
    echo "创建数据表错误: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

下面建立我們的文章表'tiopic''tiopic '存放的欄位

  • #author   發佈貼文的作者
  • title      貼文的標題
  • content   貼文的內容
  • last_post_time   貼文發佈的時間
  • #last_post_time   貼文發佈的時間
  • ##last_post_time   貼文發佈的時間

##last_post_time   貼文發佈的時間

reply_author      帖子的回复人


reply       帖子的回复內容

#########reply_time   回复帖子的時間######## ####程式碼如下###
<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "mybbs";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,'utf8'); //设定字符集
// 检测连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
// 使用 sql 创建数据表
$sql = "CREATE TABLE tiopic (
 id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 `author` varchar(50) NOT NULL,
  `title` varchar(100) NOT NULL,
  `content` text NOT NULL,
  `last_post_time` datetime NOT NULL,
  `reply_author` varchar(50) DEFAULT NULL,
  `reply` text,
  `reply_time` datetime DEFAULT NULL
);";
if (mysqli_query($conn, $sql)) {
    echo "数据表 tiopic 创建成功";
} else {
    echo "创建数据表错误: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
######提示:本教學只是示範簡單的論壇原理,所以將發佈貼文的內容與回覆貼文的內容放在了一起,真正完整的論壇回覆需要用到PHP的遞歸,本教學是沒有用遞歸的,所以回覆貼文的時候,新內容會蓋掉之前的內容,希望學習者學習完本課程之後做一個更為完善的論壇###### ################
繼續學習
||
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 $servername = "localhost"; $username = "root"; $password = "root"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); mysqli_set_charset($conn,'utf8'); //设定字符集 // 检测连接 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 创建数据库 $sql = "CREATE DATABASE mybbs"; if (mysqli_query($conn, $sql)) { echo "数据库创建成功"; } else { echo "数据库创建失败: " . mysqli_error($conn); } mysqli_close($conn); ?>