繁体   English   中英

检查PHP中的列值不起作用

[英]check column values in php not working

我想用以下PHP代码打印学生报告。 (第四列是标记)。 我无法修改代码。 有谁能够帮助我 。 在这方面,我需要标记超过75的报告。

<?php
    $row = 1;
    if(($handle = fopen("xyz.csv", "r")) !== false) {
        $table1  = '<table div id="kk">';
        while (($data = fgetcsv($handle, 1000, ",")) !== false) {
            $table1Add =  false;
            if($row >=1 && $row <= 53)
                $table1Add = true;
                    $num = count($data);
            if($row == 1) {
                $table1 .= '<thead><tr>';
                for($c = 0; $c <= 8; $c++) {
                    $value = empty($data[$c]) ? "&nbsp;" : $data[$c];
                    $table1 .= '<th>'.$value.'</th>';
                }
                $table1 .= '</tr></thead><tbody>';
               } else {
              if($table1Add) $table1 .= '<tr>';           
                for($c = 0; $c <= 8; $c++) {
                    $value = empty($data[$c]) ? "&nbsp;" : $data[$c];
                    if($table1Add) $table1 .= '<td>'.$value.'</td>';
                }
                if($table1Add) $table1 .= '</tr>';
                }
            $row++;
        }
        $table1 .= '</tbody></table>';
        fclose($handle);
        echo $table1;
        }
    ?>

尝试:

<?php
    $row = 1;
    if(($handle = fopen("xyz.csv", "r")) !== false) {
        $table1  = '<table div id="kk">';
        while (($data = fgetcsv($handle, 1000, ",")) !== false) {
            $table1Add =  false;
            if($row >=1 && $row <= 53)
                $table1Add = true;
                    $num = count($data);
            if($row == 1) {
                $table1 .= '<thead><tr>';
                for($c = 0; $c <= 8; $c++) {
                    $value = empty($data[$c]) ? "&nbsp;" : $data[$c];
                    $table1 .= '<th>'.$value.'</th>';
                }
                $table1 .= '</tr></thead><tbody>';
               } else {
              if($table1Add) $table1 .= '<tr>';  
                /* this bit edited */
                $temp_holder = ''; 
                $flag = false;         
                for($c = 0; $c <= 8; $c++) {
                    if($c==3 && $data[$c]>75) { $flag = true; } 
                    if($table1Add){
                        $temp_holder .= '<td>'.(empty($data[$c]) ? "&nbsp;" : $data[$c]).'</td>';
                    }
                    if($c==8 && flag==true) { $table1 .= $temp_holder; }
                    /* till here */
                }
                if($table1Add) $table1 .= '</tr>';
                }
            $row++;
        }
        $table1 .= '</tbody></table>';
        fclose($handle);
        echo $table1;
        }
    ?>

上面所做的是,我们将使用一个temp变量保留所有<td>数据,当您到达第4列(从0开始为3)时,检查标记是否大于75,如果是,则设置flag真实。 如果该flag为true,则意味着该行具有大于75的标记,因此将temp变量中的所有<td>值附加到table1变量中。

暂无
暂无

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

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