繁体   English   中英

如何在一行中获取具有相同 id 但在另一列中具有不同值的数据并在 php 中的表中显示一个月

[英]How to fetch data with same id in a row but different value in another column and display one month into table in php

我在 MySQL 表中有以下数据:

emp_id 日期 转移
1001 2022-08-01
1001 2022-08-02
1001 2022-08-03 ñ
1002 2022-08-01
1002 2022-08-02
1002 2022-08-06

Output 应该是这样的(一个月列表显示):

emp_id 2022-08-01 2022-08-02 2022-08-03 2022-08-04 2022-08-05 2022-08-06
1001 ñ 0 0 0
1002 0 0 0

我的代码是:

 <?php
for($j = 1; $j <=  date('t'); $j++)
{
$dat = str_pad($j, 2, '0', STR_PAD_LEFT). "-" . date('m') . "-" . 
date('Y');
$d[] = date('Y'). "-" . date('m') . "-" . str_pad($j, 2, '0', 
STR_PAD_LEFT);
$datess[] = str_pad($j, 2, '0', STR_PAD_LEFT)."<br>".date('D', 
strtotime($dat));
}
?>
<?php 
$link = mysqli_connect('localhost','root','','rostertest');
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
?>

<div class="table-responsive">          
  <table class="table">
    <thead>
      <tr>
<th>#</th>
<th>Employee</th>
<?php foreach($datess as $dates) {?>
<th>
    <?php echo $dates; ?>
</th>
<?php } ?>
</tr>
    </thead>
    <tbody id="tbl_body">
                
                <?php
                $i=0;
                $get_sql = "select * from ros";
                $run = mysqli_query($link,$get_sql);
                while($row = mysqli_fetch_array($run)){
                $date = $row['date'];
                $i++;
                ?>
                    <tr>
                    <td><?php echo $i; ?></td>
                    <td><?php echo $row['emp_id']; ?></td> 
                    <?php foreach($d as $da) { if($date==$da){?>
                    <td><?php echo $row['shift']; ?></td>
                    <?php }else{ ?>
                    <td><?php echo "0";?></td>
                    <?php }}?>
                    
                </tr>
                <?php }?>
            </tbody>
     </table>
    </div>

对于这些类型的数据,您需要另一个表,例如 Table.emp_date 与(来自 ros 的 emp_id)和(来自 emp_date 的 id)之间的关系,您必须将“emp_date”和“shift”移动到这个新表。

让我也试着用你的代码来解释一下:

  <?php
            $i=0;
            $get_sql = "select * from ros";
            $run = mysqli_query($link,$get_sql);
            while($row = mysqli_fetch_array($run)){
                $get_sql2 = "select * from emp_date WHERE id=" . $row['emp_id'];
                $run2 = mysqli_query($link,$get_sql2);
                while($row2 = mysqli_fetch_array($run2)){
                   $i++;
                       ?>
                    <tr>
                    <td><?php echo $i; ?></td>
                    <td><?php echo $row['emp_id']; ?></td> 
                    <td><?php echo $row2['emp_date']; ?></td> 
                    <td><?php echo $row2['shift']; ?></td>
                    </tr>
              <?php }}?>

暂无
暂无

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

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