php标签云制作过程(数据表的结构和查询)

1.数据表的结构:

 

创建建两张数据表,结构如下:

 

标签tag表:

 

 

文章mood表:

 

 

其中mood表中的tag字段,以tag表的id字段+“,”+tag表的id字段,

 

 

2.查询方法:

 

例如:如果需要某篇文章中包含tag表中的id为1,2,3的tagname,也就是id为1,2,3的标签,

 

则在添加文章的时候用

 

$result=implode(“,”, $_POST[‘tagid’]);//把获取的checkbox的数组用逗号进行分割

 

$_POST[‘tagid’]为获取前台的复选框的数组,前台html部分代码为:

 

<input type=”checkbox” name=”tagid[]” value=”{$tag.id}” id=”{$tag.id}”><label for=”{$tag.id}”>{$tag.tagname}</label>//这里是thinkphp的写法,原生的写法大同小异

 

这样存储文章的时候,只需要mood表中的tag=$result即可。

 

数据已经存好了,接下来我们需要实现的是,点击相应的标签查询出所有包含该标签的文章。

 

如果我们需要显示某篇文章所包含的所有标签,我们要先获取该片文章的id,查询出该篇文章的tag,

 

用分割函数

 

$taglist = explode(‘,’,$source); //$source为文章的tag值,例如:把tag=“1,2,3”分割为一个数组

 

然后在前台可以这样写:

 

for($index=0;$index<count($taglist);$index++){ 
$tagsa=$tagdata->where(‘id=%d’,$taglist[$index])->select();
echo “<a id=’tag’ href=’location/tag/”.$tagsa[0][‘id’].”‘>”.($tagsa[0][‘tagname’]).”</a>&nbsp&nbsp&nbsp” ;
}

 

循环输出tagname,url传tag表的id值,接下来只需要在接收url值的地方写一个模糊查询的sql,文章表的tag like %id%。

 

 注:以上的查询语句都是thinkphp的语法。

 

这样用模糊查询会出现一个问题,因为例如:文章表的其中一个tag字段可能包含1,5    另一个tag字段可能包含10,23

 

如果查询tag like %1%的时候会查询出  tag字段为1,5   和   tag字段为10,23   的两篇文章。即使like条件为%1,%或者%,1,%也是不行的。

 

因此这里我的写法是在前台写php代码,用两个嵌套的for循环来解决,如下:

 

$map[‘tag’] = array(‘like’,’%’.tagid.’%’);
//dump($selecttag[$i][‘id’]);$arr_mood=$mood->where($map)->select();for($a=0;$a<count($arr_mood);$a++){
$source=$arr_mood[$a][‘tag’];
$taglist = explode(‘,’,$source);

for($index=0;$index<count($taglist);$index++){

if(tagid==$taglist[$index]){//当传过来的tagid在文章的tag字段中存在,则输出。
dump($arr_mood[$a][‘title’]);//这里可以用echo输出至前台
}

}

}

 

鉴于博主是php新手,所以代码有粗糙的地方,请见谅了

时间: 2024-08-31 21:53:30

php标签云制作过程(数据表的结构和查询)的相关文章

php标签云制作——数据表的结构和查询方法

例如:如果需要某篇文章中包含tag表中的id为1,2,3的tagname,也就是id为1,2,3的标签,   则在添加文章的时候用       $result=implode(",", $_POST['tagid']);//把获取的checkbox的数组用逗号进行分割 $_POST['tagid']为获取前台的复选框的数组,前台html部分代码为: <input type="checkbox" name="tagid[]" value=&q

Excel如何批量制作CSV数据表

  众所周知,Excel的功能十分强大,而其最核心的功能在于数据处理.熟练驾奴Excel,您的工作将充满快乐和自信.当您仅花上几分钟就完成了别人花上几天功夫才能完成的数据处理工作时,心中的那份喜悦只有您自己才能体会得到!下面给大家展示的是Excel批量制作数据表-- 目的 1通过数据模板与VBA结合,批量制作CSV数据表,要求使用规则逐步递增的命名方式来命名批量制作出来的数据表,数据表的内容根据实际需求由最初的模板和提供的基础值自动生成.尽量减少手动操作,真正实现全自动!如图所示为批量制作出来的

mysql中创建修改删除数据表例子

在PHP中应用数据库时,通常是先在MySQL客户机的控制台中,使用DDL语句创建网站中的数据库.数据表及修改表结构等操作以后,再在PHP脚本中应用.很少直接在PHP中执行DDL语句动态创建数据库.数据表或修改表的操作,通常也只有在制作安装版本的网站时才会这么做. 1.创建表(CREATE TABLE) 数据库创建以后,使用use命令选定这个新创建的数据库作为默认(当前)数据库使用,就可以继续建立其包含的数据表.数据表的创建是使用表的前提,创建数据表主要是定义数据表的结构,包括数据表的名称.字段名

SQLite教程(三):数据表和视图简介_SQLite

一.创建数据表:     该命令的语法规则和使用方式与大多数关系型数据库基本相同,因此我们还是以示例的方式来演示SQLite中创建表的各种规则.但是对于一些SQLite特有的规则,我们会给予额外的说明.注:以下所有示例均是在sqlite自带命令行工具中完成的.     1). 最简单的数据表:   复制代码 代码如下:     sqlite> CREATE TABLE testtable (first_col integer);       这里需要说明的是,对于自定义数据表表名,如testta

将jsp页面的mysql数据表导出为excel文档

问题描述 将jsp页面的mysql数据表导出为excel文档 请问如何将jsp页面上的数据导出为文档,该数据表中的数据来自mysql数据库中的数据表,通过一个导出按钮导出,哪位大神可以给出示例代码,急求!! 解决方案 循环遍历你的数据,然后调用poi生成excel 例子http://blog.csdn.net/ptzrbin/article/details/8751293 解决方案二: 如何将MySQL数据表的结构导出到excel文件如何把JSP页面导出到Excel中?

让你提前认识软件开发(36):如何扩展数据表字段?

第2部分 数据库SQL语言 如何扩展数据表字段?   [文章摘要]         在通信类软件中,经常会与数据库打交道.由于需求变化,或者是程序优化升级等原因,对数据表字段进行扩展是常有的事情.这就要求开发人员必须熟练掌握对数据表字段进行扩展的操作流程.         本文基于作者的数据库方面的工作经验,以实际的SQL程序为例,详细介绍了如何对对数据表字段进行扩展,为相关的开发工作提供了参考. [关键词]         数据库  数据表  扩展  SQL  开发   一.前言       

php mysql数据的导入导出,数据表结构的导入导出

实现数据的导入导出,数据表结构的导入导出 ********************************************************/         //         //包含Mysql数据库操作文件         //         require_once("MysqlDB.php");          /******************************************************* **类    名:MysqlDB

Oracle数据库入门之多表连接与子查询

Oracle表连接 概述:SQL/Oracle使用表连接从多个表中查询数据 格式:select 字段列表 from table1,table2 where table1.column1=table2.column2; 说明:当被连接的多个表中存在同名字段时,必须在该字段前加上"table."作为前缀 如果没有限定where连接条件,否则就会出现笛卡尔集的不现实或没有实用意义的结果 举例:select empno, ename, sal, emp.deptno, dname, loc f

阿里云凌云奖之后金数据需要更轻地普及数据表单服务

10月24日,由阿里云计算有限公司主办的"云计算成就创业梦想"第二届阿里云开发者大赛现场总决赛落幕,小谦之前关注过的提供轻态数据服务的"金数据",成功在众多创业项目中脱颖而出,成为荣获阿里云开发者大会凌云奖. 笔者当初之所以有撰文关注金数据这款产品,是一种看好金数据背后移动数据产业的发展前景和轻姿态步入移动数据服务领域的表现.如今金数据成功荣获凌云奖,可以说金数据背后的产业发展前景是在一定程度上获得了业界专家们的认可的,既然如此,作为一名关注并评论了金数据的互联网爱