日期:2014-05-17  浏览次数:20456 次

PHP分组查询生成XML
有这样两张表,arp_individual是病人信息表,arp_area是住院房间表,现在要实现按房间统计病人数情况生成一个XML文档以便被flash动画调用,病人信息中的room字段与住院房间表中的id关联,怎么实现这样的PHP代码:

------------------------

以下是病人信息表

CREATE TABLE `arp_individual` (
  `id` int(11) NOT NULL default '0',
  `individualid` varchar(60) character set latin1 default NULL,
  `sex` int(11) default NULL,
  `room` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


------------------------

以下是住院房间表

CREATE TABLE `arp_area` (
  `id` mediumint(8) NOT NULL auto_increment,
  `areaname` longtext,
  `nurse` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2059 DEFAULT CHARSET=utf8;


------------------------

以下是生成的XML数据格式

<?xml version="1.0" encoding="utf-8"?>
<data>
<area id="A01" title="常规治疗1区" value="常规治疗1区,人数:6人,护士:林晓岚" />
<area id="A02" title="常规治疗2区" value="常规治疗1区,人数:5人,护士:林晓岚" />
......
<area id="F09" title="急诊9区" value="急诊9区,人数:8人,护士:张梅颖" />
</data>

------解决方案--------------------
DOMDocument生成
另没有看出来这两张表是怎么关联的,推测可能有第三张表吧。
------解决方案--------------------
还在搞医院的东西,我以前做过医院的单。
有几个经验:
1 私人医院全tmd 的奸商,要有一定的尺度,不要被人忽悠得到处转。
2 公立医院,资金要等好久,审批程序极期麻烦。
所以劝一句,没有很NB的关系,医院这趟水,没要涉太深~
------解决方案--------------------
为啥要like呢?
SELECT COUNT(*), areaname  FROM arp_individual i
  LEFT JOIN arp_area  a ON  i.room = a.id  
  GROUP BY i.room
 
------解决方案--------------------
如果希望别人帮你写代码,你至少需要:
1、给出表间关系
2、输出结果中的内容与字段的对应关系
------解决方案--------------------
引用:
上边忘记补充一点,其实房间编号信息里隐藏着房间的分类信息,像A01-01横杠后边的是房间编号,前边的A01是区域编号,这不是我这样设计的,医院本身就这样编号,没办法!

先统计单个的,然后再循环处理A01-01这种情况。字符串操作总比mysql要来的容易些。~
------解决方案--------------------
既然你连数据对应关系都不愿提供,那只有泛泛的说了
按病区计数、求和,将结果循环输出