PHP新闻发布系统基础:数据库与字段设置详解
111 浏览量
更新于2024-09-01
3
收藏 136KB PDF 举报
本篇教程是关于创建一个简单的PHP新闻发布系统的第一步,主要介绍了使用phpMyAdmin搭建数据库的过程。首先,作者建议在名为yayu的数据库中创建一个名为news的数据表。在设计表结构时,核心知识点包括:
1. **字段概念**:字段是数据库中的基本单位,用于存储数据,例如新闻的发表时间。在这里,时间字段被命名为"time",用以存储不同的发表时间。通过关联其他字段如标题("title")来区分不同的时间。
2. **主键和唯一性**:字段"id"被定义为主键,它是一个自增的阿拉伯数字,确保每个新闻有唯一的标识。设置为自动递增(auto-increment)以简化数据管理。
3. **数据类型**:
- `id`:作为整型(tinyint),系统默认长度为4,且设置为主键和唯一键,自动递增。
- `author`:作者字段为变长字符串(varchar),长度设为8,考虑到了可能的国际性,虽然8个字节足够中国作者,但为其他可能的外国作者留有余地。
- `title`:新闻标题字段(varchar,长度60),设置为主键。
- `content`:新闻内容字段(text),由于文本内容长度不限,无需指定长度。
- `source`:来源字段(varchar,长度60)。
- `date`:发表时间字段(datetime),无需指定长度,同样作为主键。
4. **日期时间类型**:`date`字段使用datetime类型,可以存储日期和时间信息,其长度和主键属性是关键设置。
5. **字段长度设定**:对于非整数类型的字段,如varchar,应根据实际需求设置合适的长度,确保足够的空间存储预期数据,同时避免浪费。
本教程的第一部分着重于数据库的基础构建,后续可能还会涉及如何通过PHP操作这些数据库记录,如插入、更新和查询新闻数据等。通过这个教程,读者将学习到如何使用PHP与MySQL配合实现一个基础的新闻发布系统。
2018-01-20 上传
2010-01-03 上传
PHP实例之新闻发布系统
Create TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`p_time` DATETIME NOT NULL ,
`title` VARCHAR( 80 ) NOT NULL ,
`detail` TEXT NOT NULL
) TYPE = innodb;
create table news(id int not null auto_increment primary key,
p_time datetime not null,
title varchar(80)not null,
detail text not null
)type=innodb;
数据库连接:conn.php
<?
$conn = @mysql_connect('localhost','root','')or die(mysql_error()."不能连接到数据库!"); //连接数据库;
$db = mysql_select_db('news',$conn);
$page_size = 8; //每页最多显示新闻条数;
?>
添加新闻页面:new.php
<?
$title="新闻发布系统";
include("inc/header.inc");//头文件
?>
<style type="text/css">
<!--
.STYLE1 {font-size: 12px}
.title {
font-size: 12px;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
font-family: "宋体";
color: #993300;
line-height: normal;
height: 16px;
}
.field {
font-family: "宋体";
font-size: 12px;
color: #993333;
}
.STYLE2 {
font-size: 16px;
font-weight: bold;
}
-->
</style>
</form>
<?
include("inc/navbar.inc");//底部
?>
新闻处理页面:post.php
<?
include"conn.php";
$title=htmlspecialchars($_POST['title']);
$textfield=htmlspecialchars($_POST['textfield']);
$pub_time=date('Y')."-".date('m')."-".date('d')." ".date('H').":".date('i').":".date('s');
$query="insert into news(title,detail,p_time)values ('$title','$textfield','$pub_time')";
$result=mysql_query($query);
if($result)
{
echo "发布成功!
"; echo "新闻列表 继续发布"; } else { echo mysql_error()."
"; echo "发布失败!请返回"; } ?> 新闻列表:list.php <? include "conn.php"; $query = "Select COUNT(*) FROM news"; $result = mysql_query($query); $num = mysql_num_rows($result); $page_count = ceil($num/$page_size); //$offset = ($page_count-1)*$page_size; if(empty($_GET['page'])) { $page = 1; }else { $page = $_GET['page']; if($page<=0) { $page = 1; }else { $page >= $page_count; $page = $page_count-1; } } $query ="Select * FROM `news` orDER BY `id` DESC LIMIT ".($page-1)*$page_count.","."$page_size"; $result = mysql_query($query); ?>
发布信息
<?php //页码显示
for ($i=1;$i<=($page_count-1);$i++){
echo "".$i." ";
}
//页码显示
?>
新闻显示页面:view.php
<?
include "conn.php";
$query = "Select * FROM news where id=".$_GET['id'];
$result = mysql_query($query);
$v_result = @mysql_fetch_array($result);
?>
<table width="60%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#0066FF">
标题:
<?php echo $v_result['title'];?>
内容:
<?php echo $v_result['detail'];?>
返回
PHP+Mysql新闻发布
<form action="post.php" method="post" name="frm" id="frm">标题: |
<input name="title" type="text" class="title" id="title" size="60" maxlength="80"></td> |
内容: |
<textarea name="textfield" cols="58" rows="6" class="field"></textarea> |
<input name="submit" type="submit" value="发布"></td> |
"; echo "新闻列表 继续发布"; } else { echo mysql_error()."
"; echo "发布失败!请返回"; } ?> 新闻列表:list.php <? include "conn.php"; $query = "Select COUNT(*) FROM news"; $result = mysql_query($query); $num = mysql_num_rows($result); $page_count = ceil($num/$page_size); //$offset = ($page_count-1)*$page_size; if(empty($_GET['page'])) { $page = 1; }else { $page = $_GET['page']; if($page<=0) { $page = 1; }else { $page >= $page_count; $page = $page_count-1; } } $query ="Select * FROM `news` orDER BY `id` DESC LIMIT ".($page-1)*$page_count.","."$page_size"; $result = mysql_query($query); ?>
标题 |
时间 |
|
<?php echo $l_result['id'];?>
|
2020-12-18 上传
2021-09-09 上传
2022-09-20 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38598613
- 粉丝: 7
- 资源: 914
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码