一步一步教你用PHP+MySql搭建网站 No.2 图片显示和Page页面

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

接着上一章节的看,我们现在的程序有了第一个主页面,但是我们会发现几个问题,一个是主页上的图片没法显示,二是点击read more ... 之后的链接没有内容

这两个页面的入口分别是下图里面的两个框出来的内容。

我们先来看图片显示的页面;

Resize_image.php

我们注意到其实这个链接的完整URL是: resize_image.php?image=...&max_width=...&max_height=...;

也就是说这个链接有3个参数: image是图片的名称,max_width和height分别对应图片的宽和高。

那么我们在这个页面我们该如何处理呢?


这是resize_image.php的完整代码,将原始的图片大小根据我们页面输入的width和height来进行压缩或者放大,然后重新生成一张新的图片,用于显示在页面上。


接下来我们来看page.php页面


page.php


因为点击page页面其实相当于打开了3个不同类型的blog内容的详细页面,所以我们肯定是需要到数据库里面进行select操作的。

上一篇blog里面有讲解过,我们只需要改变中间的显示内容,所以在第10行和第47行,我们分别引入了header.php和footer.php ,中间的内容我们通过数据库查询以后再显示出来。

我们展示page页面的时候,可能有时候是用户点击了某一条story,这时候参数里面会有story,传入的是故事的id;或者可能是某一类的只有page字段,所以根据参数中有没有story,我们来决定我们的select该怎么写。

但是无论如何,我们最后得到的都是这样的表结构:


我们再来回顾下stories表的建立过程:


注意看到id字段不仅仅是primary key,而且它还是auto_increment属性,在MySQL里面,auto_increment就是自增字段,每次插入数据时,会自动查询当前序列的最大值,然后加1,



大家看我的stories表中存的所有内容,1-7都是我们通过教材手动insert进去的,然后会发现接下来就是11了,而并没有8,9 和10 ,是因为我在开发过程中进行了插入和删除操作,我把id为8,9,10的记录删除了,所以在表中没有显示,但是即便这时候你的表里面最大的id是7,他的记录也会插进去11,也就是说 这个自增的序列是独立于当前的表的,和oracle的自增序列一样,但是我不太清楚mysql里面的自增序列和oracle有哪些区别。

Oracle中的自增序列的建立方法是:

CREATE SEQUENCE "SEQ_ID" MINVALUE 1 MAXVALUE 999999999999 INCREMENT BY 1 START WITH 1 CACHE 10 NOORDER NOCYCLE;

然后使用的时候就直接insert .... values(seq_id.nextval)就相当与插入了下一个自增序列的下一个值,所以在oracle里面可以有好几个自增序列,但是不太清楚MySQL里面自增序列这块是怎样的,目测是只有一个公用的自增序列。


好了我们回归正题,在while循环体内,我们能看到每个故事是由4部分组成的,

27行:

显示每篇story的headline,

29-35行:

根据存储的picture名称来显示出图片,使用的方法仍然是我们上面提到的resize_image.php

36-41行:

这里我们需要用到db_fns.php中的新的函数:

把下面的函数添加进 db_fns.php中,这个函数很简单,就是把当前sotry的writer信息找到。


然后显示文章修改的时间:

这里在数据库里面存储的是10位的时间戳形式的,显示的时候 根据格式做一下转换就好了:

date('M d, H: i', $story['modified']);

44行

显示故事的主题内容。

好了,这样我们就能看到界面上的图片,然后也能点击主界面上的大部分按钮了。

下一章节我们来进行用户登录,然后新增文章等操作。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
27天前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。
|
10天前
|
JavaScript 前端开发 安全
php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05
本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。
|
2月前
|
存储 SQL 关系型数据库
PHP与MySQL交互的奥秘
【8月更文挑战第29天】在编程的世界里,PHP和MySQL就像是一对默契的舞伴,共同演绎着数据的交响曲。本文将带你探索它们之间的互动,从连接数据库到执行查询,再到处理结果,每一步都充满了节奏与和谐。我们将一起走进这段代码的旅程,感受数据流动的魅力。
|
1月前
|
搜索推荐 PHP UED
PHP中的异常处理与自定义错误页面
【8月更文挑战第33天】在PHP开发中,优雅地处理异常和错误是提升应用稳定性和用户体验的关键。本文将引导你理解PHP的异常处理机制,并教你如何创建自定义错误页面,以增强你的应用对错误的响应能力。从基本的错误类型到深入的异常捕获,再到实现个性化的用户提示,我们将一步步构建一个更加健壮的PHP应用。
21 4
|
2月前
|
PHP Windows
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
|
2月前
|
SQL 关系型数据库 MySQL
PHP与MySQL交互之基础教程
【8月更文挑战第31天】 在数字世界中,数据是推动一切的核心力量。本文将引导你探索PHP与MySQL的协同工作,通过实际代码示例,展示如何建立连接、执行查询以及处理结果集。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你提供宝贵的实践知识。
|
3月前
|
数据库
基于PHP+MYSQL开发制作的趣味测试网站源码
基于PHP+MYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分, 自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息, 没设置的话第一次查询缘分都是非常好的 95-99,第二次查就比较差 , 所以如果要你女朋友查询你的名字觉得很好 那就得是她第一反应是查和你的缘分, 如果查的是别人,那不好意思,第二个可能是你。
54 3
|
4月前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
66 1
下一篇
无影云桌面