[英]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]) ? " " : $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]) ? " " : $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]) ? " " : $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]) ? " " : $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.