搜索
首页数据库mysql教程实现MySQL书架的后台操作流程
实现MySQL书架的后台操作流程Jun 07, 2016 pm 04:09 PM
mysql主要书架后台实现操作文章流程

以下的文章主要说明的是MySQL书架的后台,其中主要包括的有其功能的具体描述,MySQL数据库的总体设计,MySQL数据库的实际操作,以下的文章就是对这些相关内容的主要描述。望你浏览之后会有所收获。 设计模式之迭代器 Iterator ,写了一个list类SortedArrayLi

以下的文章主要说明的是MySQL书架的后台,其中主要包括的有其功能的具体描述,MySQL数据库的总体设计,MySQL数据库的实际操作,以下的文章就是对这些相关内容的主要描述。望你浏览之后会有所收获。

设计模式之迭代器 Iterator ,写了一个list类SortedArrayList不知该叫什么名字,谁有在墙上挂一个MySQL书架的经验?

功能描述:

这只是项目中的小模块,项目中有几个栏目小说 期刊 综合,每个栏目都有书籍,在sns中,当登录用户,看到某本书的时候,可以点击放入我的书架,选择放入那个书架,每个书架可以放20本书,每个用户最多可以建10个书架。对放到书架上的书,可以在我的排序中自动拖动,而在其他的更新排序中按实际时间显示,用户不可以改变顺序,

数据库设计:

数据库主要用来保存放到MySQL书架中书籍的一些信息,封面 描述 地址 等,还有重要的 书架类别字段(用一个二维数组实现),每个书架有20个位置可以放书,可以设置一个字段,放书的时候是书的id ,没放书的就用0来表示,可以用一个二维数组,数组的key 用来放书架的类别,值用来放此类别中的信息,

数据库的操作:

数据库操作说明项目都是一样的CURL基本的操作,具体到本项目中,就是先添加,每个用户有一个默认数据,就是第一个数组,用户可以改变书架的名字就是数组的键值,对于每一个数组的操作,当加入此书架时,移动位置时 ,下架时,当向书架中添加书籍时还要判断此书架是否已经放满没有位置了,还有就是同一本书不能在一个书架中放入两次以上。

对于整个字段,就是在添加书架类别的时候,新建一个数组,初始里面的数组,就是初始一个空书架。当添加书架的时候判断书架是否以超过最大数目(可以在前面页面根据等级控制用户可以创建书架的个数);create table bookshelf (uid int(11) ,shelf text);//创建书架表bookshelf

Sql代码

$arr = array('默认数据'=>'0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0');//插入默认书架的数据,一个数字,key 为书架名字,value为数据上的位置默认为空,
 

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">text</span><span> = </span><span class="attribute-value">serialize</span><span>($arr);//序列化该数组   </span></span></li>
<li><span>insert into bookshelf (uid shelf) values( "$text" ,'$uid');//插入初始化数据   </span></li>
<li class="alt"><span>//添加书架,书架'shelf1' 名字要唯一   </span></li>
<li>
<span>$</span><span class="attribute">shelfs</span><span>=</span><span class="attribute-value">select</span><span> shelf from bookshelf where </span><span class="attribute">uid</span><span> = </span><span class="attribute-value">'$uid'</span><span>;//查询出uid 的书架   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">a</span><span> = </span><span class="attribute-value">unserialize</span><span>($shelfs);//反序列化MySQL书架得到数组,   </span>
</li>
<li>
<span>for(int </span><span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;i</span><span class="tag"><span class="tag-name">count</span><span>($a);i++){//判断此书架是否存在   </span></span>
</li>
<li class="alt"><span>if($(a)[0]==shelf1){   </span></li>
<li><span>return "此书架以存在";   </span></li>
<li class="alt"><span>}   </span></li>
<li><span>return true;   </span></li>
<li class="alt"><span>}   </span></li>
<li>
<span>$</span><span class="attribute">p</span><span> = </span><span class="attribute-value">array</span><span>('shelf1'=</span><span class="tag">></span><span>'0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0');   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">p</span><span> = </span><span class="attribute-value">serialize</span><span>($p);//插入新书架   </span>
</li>
<li>
<span>insert into bookshelf shelf values ('$p') where </span><span class="attribute">uid</span><span> = </span><span class="attribute-value">'$uid'</span><span>;   </span>
</li>
<li class="alt"><span>//添加书籍 book1 'bid1'到书架shelf1   </span></li>
<li>
<span>$</span><span class="attribute">shelfs1</span><span> = </span><span class="attribute-value">select</span><span> shelf from bookshelf where </span><span class="attribute">uid</span><span> = </span><span class="attribute-value">'$uid'</span><span>;//   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">b</span><span> = </span><span class="attribute-value">unserialize</span><span>($shelfs1);//   </span>
</li>
<li>
<span>for(int </span><span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;i</span><span class="tag"><span class="tag-name">count</span><span>($b);i++){   </span></span>
</li>
<li class="alt"><span>if($b[i][0]=='$shelf1'){//得到要插入的MySQL书架   </span></li>
<li>
<span>$</span><span class="attribute">pk</span><span> = </span><span class="attribute-value">explode</span><span>('-','$b[i][1]);   </span>
</li>
<li class="alt">
<span>for(int </span><span class="attribute">num</span><span>=</span><span class="attribute-value">1</span><span>;num</span><span class="tag"><span class="tag-name">count</span><span>($pk[1]);num++){;/书架是否放满   </span></span>
</li>
<li><span>if($pk[1][i]==0){   </span></li>
<li class="alt">
<span>for(int </span><span class="attribute">k</span><span>=</span><span class="attribute-value">1</span><span>;k</span><span class="tag"><span class="tag-name">count</span><span>($pk);k++){//判断书架中是否有要插入的书   </span></span>
</li>
<li><span>if($pk[i][1]=='$bid1'){   </span></li>
<li class="alt"><span>return '此书架已有此时';   </span></li>
<li><span>}else{//书架中没有此书可以插入 默认插入到后面   </span></li>
<li class="alt"><span>if($pk[i][1]==0){   </span></li>
<li><span>$pk[i][1]==$bid1;//插入数组   </span></li>
<li class="alt"><span>return implode("-",$pk[i]);//返回字符串   </span></li>
<li><span>}   </span></li>
<li class="alt"><span>}else   </span></li>
<li><span>return "此书架以放满";   </span></li>
<li class="alt"><span>}   </span></li>
<li><span>//读取书架 用于在加入书架时显示的列表 书籍数量 存入一个数组中   </span></li>
<li class="alt">
<span>$</span><span class="attribute">arr</span><span> = </span><span class="attribute-value">new</span><span> array();   </span>
</li>
<li>
<span>$</span><span class="attribute">shlefs</span><span> = </span><span class="attribute-value">select</span><span> shelf from bookshelf where </span><span class="attribute">uid</span><span> =</span><span class="attribute-value">'$uid'</span><span>;//   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">ss</span><span> = </span><span class="attribute-value">unsersize</span><span>($shelfs);//反序列化MySQL书架信息   </span>
</li>
<li>
<span>for(int </span><span class="attribute">nn</span><span>=</span><span class="attribute-value">1</span><span>;nn</span><span class="tag"><span class="tag-name">count</span><span>($ss);nn++){//把书架名字做key   </span></span>
</li>
<li class="alt">
<span>$</span><span class="attribute">key</span><span> =$ss[i][0];   </span>
</li>
<li>
<span>$</span><span class="attribute">value</span><span>=</span><span class="attribute-value">0</span><span>;   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">n</span><span> = </span><span class="attribute-value">explode</span><span>("-",$ss[i][1]);   </span>
</li>
<li>
<span>for(int </span><span class="attribute">mm</span><span>=</span><span class="attribute-value">1</span><span>;mm</span><span class="tag"><span class="tag-name">count</span><span>($n);mm++){//得到此书架中的书数量   </span></span>
</li>
<li class="alt"><span>if($n[1] !=0){   </span></li>
<li><span>$value++;   </span></li>
<li class="alt"><span>}   </span></li>
<li><span>$arr[0]=$key;   </span></li>
<li class="alt"><span>$arr[1]=$value;   </span></li>
<li><span>}   </span></li>
<li class="alt"><span>//移动书籍 把bid2 从5位置移动到8位置   </span></li>
<li>
<span>$</span><span class="attribute">startpos</span><span> = </span><span class="attribute-value">2</span><span>;   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">endpos</span><span> = </span><span class="attribute-value">8</span><span>;   </span>
</li>
<li>
<span>if($startpos</span><span class="tag"><span class="tag-name">0</span><span> || $startpos</span><span class="tag">></span><span>20 || $endpos</span><span class="tag"><span class="tag-name">0</span><span> || $endpos</span><span class="tag">></span><span>20 || $</span><span class="attribute">startpos</span><span>==$endpos)exit;   </span></span></span>
</li>
<li class="alt">
<span>$</span><span class="attribute">shelf</span><span> = $_db-</span><span class="tag">></span><span>fetch_first("select * from `sns_shelf` where `uid`={$uid}");   </span>
</li>
<li>
<span>$shelf select shelf from bookshelf wher </span><span class="attribute">uid</span><span> =</span><span class="attribute-value">'$uid'</span><span>;   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">shelfs</span><span>=</span><span class="attribute-value">unserisize</span><span>($shelf);//   </span>
</li>
<li><span>feach($shelfs as $key ,$value){   </span></li>
<li class="alt">
<span>$</span><span class="attribute">array</span><span> = </span><span class="attribute-value">explode</span><span>("-",$value);   </span>
</li>
<li><span>if($array[1] == 'bid2'){找到bid2所在的MySQL书架   </span></li>
<li class="alt"><span>if($sarry[1][$startpos]==0)exit;//如果开始位置没有书不交换   </span></li>
<li>
<span>$</span><span class="attribute">temp</span><span> = $sarry[1][$endpos];//交换位置   </span>
</li>
<li class="alt"><span>$sarry[1][$endpos]=$sarry[1][$startpos];   </span></li>
<li><span>$sarry[1][$startpos]=$temp;   </span></li>
<li class="alt">
<span>$</span><span class="attribute">val</span><span> = </span><span class="attribute-value">implode</span><span>("-",$value[1]);   </span>
</li>
<li><span>$shelfs[1] = $val;   </span></li>
<li class="alt"><span>serialize($shelfsl);//序列化shelf   </span></li>
<li>
<span>update bookshelf set </span><span class="attribute">shelf</span><span> = </span><span class="attribute-value">shelfs</span><span> where </span><span class="attribute">uid</span><span> = </span><span class="attribute-value">'$uid'</span><span>;  </span>
</li>
<li class="alt"><span>更新   </span></li>
<li><span>}   </span></li>
<li class="alt"><span>}   </span></li>
</ol>


下架书籍

 


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在PHP中实现SEO优化如何在PHP中实现SEO优化May 20, 2023 pm 01:30 PM

随着互联网的发展,SEO(SearchEngineOptimization,搜索引擎优化)已经成为了网站优化的重要一环。如果您想要使您的PHP网站在搜索引擎中获得更高的排名,就需要对SEO的内容有一定的了解了。本文将会介绍如何在PHP中实现SEO优化,内容包括网站结构优化、网页内容优化、外部链接优化,以及其他相关的优化技巧。一、网站结构优化网站结构对于S

如何在PHP中实现ERP系统如何在PHP中实现ERP系统May 20, 2023 pm 06:21 PM

随着电子商务和企业管理的发展,许多企业开始寻找更好的方法来处理其日常业务流程。ERP系统是一种能够整合企业各种业务流程的软件工具。它提供了全面的功能,包括生产、销售、采购、库存、财务等方面,帮助企业提高效率、控制成本和提高客户满意度。而在PHP编程语言中,也能够实现ERP系统,这就需要我们掌握一些基本的知识和技术。下面,我们将深入探讨如何在PHP中实现ERP

在PHP中如何实现物联网开发?在PHP中如何实现物联网开发?May 12, 2023 am 11:51 AM

随着物联网技术的发展和普及,越来越多的应用场景需要使用PHP语言进行物联网开发。PHP作为一种广泛应用于Web开发的脚本语言,它的易学易用、开发速度快、可扩展性强等特点,使其成为开发物联网应用的一种优秀选择。本文将介绍在PHP中实现物联网开发的常用技术和方法。一、传输协议和数据格式物联网设备通常使用TCP/IP或UDP协议进行数据传输,而HTTP协议是一个优

如何在PHP中实现CRM系统如何在PHP中实现CRM系统May 20, 2023 pm 12:31 PM

随着企业的发展,客户管理变得越来越重要。为了提高客户满意度和忠诚度,越来越多的企业采用客户关系管理系统(CRM)来帮助其管理客户关系。而PHP是一种流行的编程语言,因其简单易学、灵活和强大而被广泛应用于Web开发。那么,如何在PHP中实现CRM系统呢?本文将为您介绍实现CRM系统的步骤和技巧。Step1:需求分析在开始开发CRM系统之前,您需要进行需求分析

如何在PHP中实现轮播图如何在PHP中实现轮播图May 22, 2023 am 08:25 AM

随着互联网的发展,轮播图已经成为了网页设计中必不可少的一部分。在很多网页中,轮播图经常被用作展示企业文化、最新产品或是推广活动等场景。本篇文章将会分享如何使用PHP来实现轮播图的功能。一、轮播图的概念轮播图是网页中一种常见的视觉效果,一般由多个图片组成,在页面中自动或手动进行切换,展示多个内容。可以添加符合业务要求的动画效果,有助于引起用户的关注和提高网站的

如何在PHP中实现验证码如何在PHP中实现验证码May 20, 2023 am 11:31 AM

随着互联网的不断发展,越来越多的网站需要使用验证码来保证安全性。验证码是一种借助人类能力而无法被计算机破解的认证技术,广泛应用于网站注册、登录、找回密码等功能中。下面将介绍如何使用PHP实现验证码功能。一、生成验证码图片验证码图片的生成是验证码功能的核心,需要生成一个随机字符,并将其渲染为图像展示给用户。在PHP中,可以使用GD库来生成图片。GD库是一种用于

在PHP中如何实现智能合约?在PHP中如何实现智能合约?May 12, 2023 am 08:09 AM

智能合约(SmartContract)是一种基于区块链的自动化交易程序,可以实现自动化执行、验证和执行交易。智能合约可以减少交易中的人为干扰,提高交易的安全性和效率。在不同的区块链中,智能合约的实现方式略有不同。本文将介绍在PHP中如何实现智能合约。PHP是一种广泛使用的编程语言,特别适合Web开发。PHP有着成熟的开源生态系统,以及许多可靠的框架和库。在

PHP微信开发:如何实现JSAPI支付PHP微信开发:如何实现JSAPI支付May 13, 2023 pm 07:21 PM

随着移动互联网的发展,微信已经成为了人们生活中不可或缺的一部分,越来越多的商家选择在微信平台上开展业务。实现微信支付功能对于商家来说是非常必要的。本文将介绍如何使用PHP实现JSAPI支付。首先,我们需要了解什么是JSAPI支付。JSAPI是微信公众号支付功能的一种,通过JS调用微信支付接口实现支付。JSAPI支付的优点在于用户只需要在微信中进行支付,不需要

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。