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

简介:

接着上一章节的看,我们现在的程序有了第一个主页面,但是我们会发现几个问题,一个是主页上的图片没法显示,二是点击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行

显示故事的主题内容。

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

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
578 0
PHP和Mysql前后端交互效果实现
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
770 17
|
安全 搜索推荐 PHP
一款轻量级的PHP链接发布页面源码
一款轻量级的PHP链接发布页面源码
425 6
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
586 18
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
617 25
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test_db"; // 创建连接 $conn = new mysqli($se
539 31
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
463 4
|
缓存 Java PHP
|
缓存 数据库 Java

推荐镜像

更多