繁体   English   中英

PHP中的多维数组

[英]Multi dimensional array in PHP

我的出勤表中有如下值

在此处输入图片说明

sl_no 是外键引用 register_table( sl_no )
register_table 包含有关学生的详细信息,例如 student_name 等...

我的问题是
如何使用多维数组以表格格式(如 Excel)获取考勤报告

更新

我正在按如下方式查询数据库,但是我在多行中获取相同学生的结果,无论他们出现在哪里,它都会创建新行,我希望通过使用以表格格式显示相同学生姓名的不同日期标题二维数组。

$sql="SELECT att.present,att.AttDate,r.student_name,r.university,r.batch FROM register_table as r inner join attendance as att on r.sl_no=att.sl_no WHERE university LIKE '$sdluniversity'";
     $result=mysqli_query($link, $sql);
     while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
          echo "<tr>";
          echo "<td>".$row['student_name']."</td>";
          echo "<td>".$row['present']."</td>";
          echo "<td>".$row['AttDate']."</td>";
          echo "<td>".$row['university']."</td>";
          echo "<td>".$row['batch']."</td>";
          echo "</tr>";
     }

请建议我在上面的代码中需要进行哪些更改,或者我的代码完全错误以实现我的要求。

我希望输出看起来像这样:

         Date1    Date1   Date3    University   Batch Average
Student1 present  present present Myuniversity  2012  100%
Student2 present  Absent  Absent  Myuniversity  2013  33%
Student3 present  present present Myuniversity  2012  100%

像 Excel 出勤报告一样,因为我是新人 webie 任何帮助都将不胜感激。

在表上使用内部联接作为

$sql='select att.present,r.university,r.name,r.rollNo from register as r inner join  attendance as att on r.sl_no=att.sl_no';
$sql = mysqli_query($con, $query);
$attendence = array();

while ($data = mysqli_fetch_assoc($sql)){

 if (!array_key_exists($data['userId'], $attendence))
    $attendence[$data['userId']]['student'] = $data['userId'];

$attendence[$data['userId']][$data['date']] = $data['present'];

}

echo "<pre>";
var_dump($attendence);

迭代$attendence数组的每个索引以形成一个表,索引为 userId,dates 你也可以计算他们的出勤率

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM