PHP以指定字段为索引返回数据库所取的数据数组
前端之家收集整理的这篇文章主要介绍了
PHP以指定字段为索引返回数据库所取的数据数组,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
很多情况下,我们从接触一个新的项目到开发完成,再回过头来仔细浏览一下自己写的代码,很多都是我们以前用熟练的代码。所以,在完成每个新项目的时 候,适当的做些项目总结、代码总结,或许你会在以后的项目中用得着,极有可能获得意外的收获,比如:代码优化,想到了更好、速度更快的实现方法等等。 牛逼的程序开发者有时候不在于代码量的多少,而是程序的代码简洁性、逻辑复杂但实现的方便性,这些才说明是否是一位好的程序员。我们不做日夜加班到深夜,拼代码量的程序员!
这篇和大家分享几个使用得PHP编程技巧,有些技巧是在看别人代码的时候学来的,有些是自己总结的。
以特定字段为索引,返回数据库取的数据数组
举个例子容易些:
假如你要
统计指定
站点从其它网站来的流量情况,并且做一个小
后台,查看每个网站每天带来的流量情况。我们先建2张数据表:
表一、
站点配置表(只
统计这些网站的流量)
<div class="codetitle">
<a style="CURSOR: pointer" data="5190" class="copybut" id="copybut5190" onclick="doCopy('code5190')"> 代码如下: <div class="codebody" id="code5190">
CREATE TABLE
site_config
(
id
smallint(5) unsigned NOT NULL auto_increment COMMENT '主键,自增',
sid
smallint(5) unsigned NOT NULL COMMENT '网站ID',
site_url
varchar(128) NOT NULL COMMENT '网站
URL地址',
site_name
varchar(80) NOT NULL COMMENT '网站
名称',
add_time
timestamp NOT NULL default CURRENT_TIMESTAMP COMMENT '
添加时间',
PRIMARY KEY (
id
),
UNIQUE KEY
adid
(
sid
)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='
站点配置表';
表二、
站点流量
统计表(来一个
用户一条记录)
<div class="codetitle">
<a style="CURSOR: pointer" data="96904" class="copybut" id="copybut96904" onclick="doCopy('code96904')"> 代码如下: <div class="codebody" id="code96904">
CREATE TABLE
site_stat
(
id
int(11) unsigned NOT NULL auto_increment COMMENT '主键,
ip_address
varchar(32) NOT NULL COMMENT '
用户IP',
PRIMARY KEY (
id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='
站点流量
统计表' ;
因为site_config表读操作大于写操作,所以类型设置为MyISAM;而site_stat表写操作大于读操作,因此,我把表类型设置为InnoDB。(这些地方也是你在设计数据的时候需要考虑的,速度提高不少)。
回到正题,假如表site_config里有这样几条数据:
数据格式为:id,sid,site_url,add_time
1,200,baidu.com,2013-06-30 14:20:00
2,201,google.com,2013-06-30 14:20:00
3,202,cnblogs.com,2013-06-30 14:20:00
4,203,codejia.net,2013-06-30 14:20:00
站点流量
统计表site_stat里已经产生了一些数据,如下:
数据格式为:id,ip_address,167.87.32.4,2013-06-30 14:40:00
2,192.168.11.56,2013-06-30 14:40:10
3,2013-06-30 14:40:10
4,2013-06-30 14:40:20
5,2013-06-30 14:40:20
6,10.10.10.10,2013-06-30 14:40:30
7,2013-06-30 14:40:31
你在
后台需要做的报表格式为:日期,网站ID,网站URL,流量数 (没有流量的
站点也要展示,流量
显示为0)
你可能会想到根据日期,在表site_stat里根据sid group by之后再left join表site_config,这显然不是我将
分享的
方法。
用2条
sql来搞定,一条是取所有的
站点;另一条是取指定日期下
站点流量
统计数。
sql1取所有
站点:
<div class="codetitle">
<a style="CURSOR: pointer" data="74878" class="copybut" id="copybut74878" onclick="doCopy('code74878')"> 代码如下: