0

私の問題について非常に長い説明が書かれていましたが、進歩し、部分的に機能するようになりました...基本的に、テーブルの他のすべての行を異なる色にして、それらが一致する場合に特定の行を強調表示したい私が設定した条件。

foreach ($data as $row) {
    $style = null;
        while (($values = fgetcsv($handle, 0, '|')) !== false) {
                $comment_lines = $values[6];
                $priority      = $values[7];
                $time_worked   = $values[11];
                $var_X  = strpos($priority, '1');
                $var_C1 = strpos($comment_lines, 'CCB');
                $var_C2 = strpos($comment_lines, 'CEB');
                $var_U  = empty($time_worked);
        }

        if (empty($values[0]) && count($values) === 1) {
                continue;
        }
    if (strlen($var_X)) {
        echo '<tr class="gradeX">';
        foreach ($values AS $index => $value) {
                echo '<td>' . $value . '</td>' ;
        }
    } else if ($var_C1 !== false) {
        echo '<tr class="gradeC">';
        foreach ($values AS $index => $value) {
                echo '<td>' . $value . '</td>' ;
        }
    } else if ($var_C2 !== false) {
        echo '<tr class="gradeC">';
        foreach ($values AS $index => $value) {
                echo '<td>' . $value . '</td>' ;
        }
    } else if ($var_U !== false) {
        echo '<tr class="gradeU">';
        foreach ($values AS $index => $value) {
                echo '<td>' . $value . '</td>' ;
        }
    } else if ($odd) {
        $odd = !$odd;
        echo '<tr class="even gradeA">';
        foreach ($values AS $index => $value) {
                echo '<td>' . $value . '</td>' ;
        }
    } else {
        $odd = !$odd;
        echo '<tr class="odd gradeA">';
        foreach ($values AS $index => $value) {
                echo '<td>' . $value . '</td>' ;
        }
    }
                echo '</tr>';
}

現在、「すべての他の」のみが機能しています。gradeX、gradeC、およびgradeUに何も表示されません...

編集:

これは作業コードです、乾杯。

while (($values = fgetcsv($handle, 0, '|')) !== false) {
        $style = null;
        $comment_lines = $values[6];
        $priority      = $values[7];
        $time_worked   = $values[11];
        $var_X  = strpos($priority, '1');
        $var_C1 = strpos($comment_lines, 'CCB');
        $var_C2 = strpos($comment_lines, 'CEB');
        $var_U  = empty($time_worked);

        if (empty($values[0]) && count($values) === 1) {
                continue;
        }

        if ($var_X !==false) {
                echo '<tr class="gradeX">';
        } elseif ($var_C1 !== false) {
                echo '<tr class="gradeC">';
        } elseif ($var_C2 !== false) {
                echo '<tr class="gradeC">';
        } elseif ($var_U !== false) {
                echo '<tr class="gradeU">';
        } else {
                //nothing
        }

        foreach ($values as $index => $value) {
                echo '<td>' . $value . '</td>';
        }

        echo '</tr>';
}
4

2 に答える 2