<!-- 从数据库中获取数据并渲染 -->
<?php
// 服务器连接文件引入并连接
require_once 'config.php';
mysqli_connect参数:主机,用户名,密码,数据库名
$conn = mysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME);
// 下面这段是联表查询
$sql = "select p.title,p.created,p.content,p.views,p.likes,p.feature,c.`name`,u.nickname,
// 查找评论条数 count()可以获取总长数、数据条数,
// 获取comments中符合post_id = p.id条件的数据的总条数并生成一个单元头为commentsCount的单元格
(SELECT COUNT(id) from comments WHERE post_id = p.id) as commentsCount
from posts p
// posts是数据库名,后面加一个字母p是别名,方便写。
//LEFT JOIN 表名 on 连表查询语句。
LEFT JOIN categories c ON c.id = p. category_id
LEFT JOIN users u ON u.id = p.user_id
WHERE c.id != 1
// order by 排序,desc是倒叙
ORDER BY p.created DESC
// LIMIT 只展示5条数据
LIMIT 5";
// 执行查找sql语句并转化为数组 添加到普通数组中方便获取数据(固定格式);
$postRequest = mysqli_query($conn,$sql);
$res1 = [];
while($row = mysqli_fetch_assoc($postRequest)){
// 数组名后面加上中括号表示将数据往数组中叠加
$res1[] = $row;
}
print_r($res1);
?>
此时获取的数据格式为数组,就可以直接渲染了:
Array
(
[0] => Array
(
[title] => 第三篇示例文章
[created] => 2017-07-01 14:00:00
[content] => 欢迎使用阿里百秀。这是一篇示例文章
[views] => 40
[likes] => 100
[feature] => http://dummyimage.com/800x600/79a2f2&text=zce.me
[name] => 会生活
[nickname] => 管理员
[commentsCount] => 52
)
[1] => Array
(
[title] => 第二篇示例文章
[created] => 2017-07-01 12:00:00
[content] => 欢迎使用阿里百秀。这是一篇示例文章
[views] => 20
[likes] => 120
[feature] => http://dummyimage.com/800x600/79a2f2&text=zce.me
[name] => 奇趣事
[nickname] => 管理员
[commentsCount] => 62
)
[2] => Array
(
[title] => 适万长
[created] => 2017-06-22 12:09:32
[content] => 来儿南为开阶展头少技理声。是战火例多发价以况引机身西速识两连。置养后红和那带矿部门其交。认万建毛美了命平走断命高要反。学出走除据号可空力应基南状准除习。连感动证极只查应选周对天在空布按。日二江向农使门下八期住较边水交放较。构龙把种数术对会年政值价但例却题。要文根信七清划共界广深要指来导。包头然大东过联安与重度加农全带成后。可系说交自或上委构要意金性构习党。数时名史然话气张可少应石列结特示。
[views] => 189
[likes] => 170
[feature] => http://dummyimage.com/800x600/f2c379&text=zce.me
[name] => 会生活
[nickname] => 汪磊
[commentsCount] => 0
)
)
按需加载数据(点击加载更多一次显示N条):
// 处理页面按需加载的功能:SQL语句规律分析
// 假设一次加载10条 : 第一次 LIMIT 10
// 第二次 LIMIT 10, 10
// 第三次 LIMIT 20, 10
// 总结规律: 语句第一个参数等于 (当前次数 - 1)* 要加载的条数
// 完整语句:LIMIT (当前次数 - 1)* 要加载的条数 要加载的条数