数据库使用的是sqlserver2012,后端使用的是PHP,下面代码是全部代码,目前问题是第一个for循环里的class Yongdianliang往后的代码只能执行一遍,第二遍无法执行,请各位专家帮忙看下问题,多谢。目前执行出来的结果如下图,框框的位置有应该跟上面一样有日期和一系列数值的,但是出不来。
有不明白下面代码执行什么功能的,可以看下我之前的提问应该可以大概了解。
<?php
error_reporting(0);
// 指定允许被访问的域名
header('Access-Control-Allow-Origin:*');
// 响应类型
header('Access-Control-Allow-Methods:*');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');
header("content-type:text/html;charset=utf-8");
$serverName = ""; //数据库服务器地址
$connectionInfo=array("Database"=>"Test","ConnectionPooling"=>false,"CharacterSet"=>"UTF-8","TrustServerCertificate"=>"yes");
$conn=sqlsrv_connect($serverName,$connectionInfo);
if(!$conn)
{
die('连接失败: ' . sqlsrv_error($conn));
}
$keshidata = array();
$sql1 = 'SELECT distinct keshi FROM T1';//sql查询语句
$result1 = sqlsrv_query($conn,$sql1,array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
//读科室列
class Keshi{//声明一个Keshi类,它只含有一个属性 $keshi;
public $keshi;
}
while($row1 = sqlsrv_fetch_array($result1,SQLSRV_FETCH_ASSOC)){
$user1=new Keshi();
$user1->keshi = $row1['keshi'];//-> 类中 用于引用类实例的方法和属性
$keshidata[]=$user1;
}
$office = array_column($keshidata,'keshi');//返回输入数组中某个单一列的值,该处为筛选出的科室列的值。
for($i=0;$i<count($keshidata);$i++){
$dushu=0;
$haodianliang=0;
$year=0;
$keshi=$office[$i];
print_r($keshi);
$sql3="select * from T1 where keshi='{$keshi}' order by keshi,banzu,time1 desc";//按科室从新到老排列数据库
$result3 = sqlsrv_query($conn,$sql3,array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
$totalRow=sqlsrv_num_rows($result3);//把总行数变量拿过来
class Yongdianliang{
public $time1;
public $yongdianliang;
}
while($row2 = sqlsrv_fetch_array($result3,SQLSRV_FETCH_ASSOC)){
$user2=new Yongdianliang();
$user2->time1 = $row2['time1'];
$user2->yongdianliang = $row2['yongdianliang'];
$yongdianliangdata[]=$user2;
}
$time = array_column($yongdianliangdata,'time1');//筛选出时间的列
$electricity = array_column($yongdianliangdata,'yongdianliang'); //筛选出用电量的列
for($j=0;$j<$totalRow;$j++){
$dushu=$electricity[$j];
print_r($dushu);
$time1[$j]=strtotime($time[$j]);//strtotime用于把人类可读的字符串转换为 Unix 时间
$nian='年';
$year=date('Y',$time1[$j]);
$year1=$year.$nian;
print_r($year1);
}
}