dqbn76906 2019-02-18 21:31
浏览 24

PHP检查while循环中是否存在值,然后输入value然后中断

I am using PHPspreadsheet and all works well. However I have an issue when generating a sign-in sheet when no one is working on a particular day THis then puts all entries on my excel template out of sync. Question: How do i check the first value(StaffName) in the loop - If empty then substitute with 'No one Working' and then break the loop and allow it to move on to the next loop Tuesday. Thanks The code is as follows:

$sql="SELECT StaffName, MonStart, MonFInish, MonA FROM print_signin_mon 
where AreaID= '$AreaID'";
$rsSql=db_query($sql,$conn);

$baseRow = 6;
$r=0;

while ($data2 = db_fetch_array($rsSql)){
$row = $baseRow + $r;
$spreadsheet->getActiveSheet()->insertNewRowBefore($row, 1);

$spreadsheet->getActiveSheet()->setCellValue('A' . $row, $r + 1)
    ->setCellValue('B' . $row, $data2['StaffName'])
    ->setCellValue('E' . $row, $data2['MonStart']) 
    ->setCellValue('G' . $row, $data2['MonFInish'])
    ->setCellValue('M' . $row, $data2['MonA']);

    $r= $r+1;
}
$spreadsheet->getActiveSheet()->removeRow($baseRow - 1, 1);
  • 写回答

2条回答 默认 最新

  • dqwh0108 2019-02-18 21:39
    关注

    Don't know if I understood you correctly, but I'll give it a try.

    If StaffName is empty, set a different cell value and skip to next iteration:

    $sql="SELECT StaffName, MonStart, MonFInish, MonA FROM print_signin_mon where AreaID= '$AreaID'";
    $rsSql=db_query($sql,$conn);
    
    $baseRow = 6;
    $r=0;
    
    while ($data2 = db_fetch_array($rsSql)){
        $row = $baseRow + $r;
        $spreadsheet->getActiveSheet()->insertNewRowBefore($row, 1);
    
        if (empty($data2['StaffName'])) {
            $spreadsheet->getActiveSheet()->setCellValue('A' . $row, $r + 1)
                ->setCellValue('B' . $row, 'No one Working');
    
            $r++;
            continue;
        }
    
        $spreadsheet->getActiveSheet()->setCellValue('A' . $row, $r + 1)
            ->setCellValue('B' . $row, $data2['StaffName'])
            ->setCellValue('E' . $row, $data2['MonStart']) 
            ->setCellValue('G' . $row, $data2['MonFInish'])
            ->setCellValue('M' . $row, $data2['MonA']);
    
        $r++;
    }
    
    $spreadsheet->getActiveSheet()->removeRow($baseRow - 1, 1);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等