Изменить цвет шрифта в таблице в зависимости от значения строки в php

0

Я попробовал несколько разных вариантов, но просто не могу об этом подумать. Я хочу, чтобы шрифт в ячейке таблицы изменялся в соответствии со своим строковым значением: например, если значение "ES", тогда поверните оранжевый шрифт, красный для "X" и серый для "n/a" код работает отлично, просто хочу добавить цвет

(в основном, запрос проверяет имя сотрудника на работу, чтобы узнать, требует ли он сертификат и возвращает "н/д", если он этого не делает, если он это делает, проверяет дату получения сертификата (действителен в течение 1 года) и видит погоду он истек, истечет в ближайшее время или если он действителен)

Ниже приведен фрагмент моего php-скрипта:

<?php
    $query = "SELECT'employee'.'empl_idno', IF( 'jobtitle'.'jt_medical'='n/a','jobtitle'.'jt_medical', IF(  'certs'.'cert_medical' = 0, 'O',IF( (DATEDIFF((DATE_ADD('certs'.'cert_medical', INTERVAL 365 DAY)),CURDATE())) < 1, 'X', IF( (DATEDIFF((DATE_ADD('certs'.'cert_medical', INTERVAL 365 DAY)),CURDATE())) < 30, 'ES', 'ok')))) AS medical,IF( 'jobtitle'.'jt_hse_ind'='n/a', 'jobtitle'.'jt_hse_ind', IF( 'certs'.'cert_hse_ind' = 0, 'O IF( (DATEDIFF((DATE_ADD('certs'.'cert_hse_ind', INTERVAL 365 DAY)),CURDATE())) < 1, 'X', IF( (DATEDIFF((DATE_ADD('certs'.'cert_hse_ind', INTERVAL 365 DAY)),CURDATE())) < 30, 'ES', 'ok')))) AS hse_ind,IF( 'jobtitle'.'jt_tf_ind'='n/a', 'jobtitle'.'jt_tf_ind', IF( 'certs'.'cert_tf_ind' = 0, 'O',IF((DATEDIFF((DATE_ADD('certs'.'cert_tf_ind', INTERVAL 365 DAY)),CURDATE())) < 1, 'X', IF( (DATEDIFF((DATE_ADD('certs'.'cert_tf_ind', INTERVAL 365 DAY)),CURDATE())) < 30, 'ES', 'ok')))) AS tf_ind FROM 'employee' JOIN 'jobtitle' ON 'employee'.'jobtitle_id' = 'jobtitle'.'jobtitle_id' JOIN 'certs' ON 'certs'.'empl_idno' = 'employee'.'empl_idno' WHERE 'employee'.'empl_jc_code' = '$empl_jc_code'AND 'employee'.'jobtitle_id' = '$jobtitle_id' ";
$result = mysqli_query($cxn,$query)
or die ("Couldn't execute query.");
echo "<table><br>
    <thead><tr>
     <th>ID No</th>
    <th class='vertical'>Medical Surveillance</th>
     <th class='vertical'>HSE Induction</th>
     <th class='vertical'>Topfix Induction</th>
    </tr></thead>";
while($row = mysqli_fetch_assoc($result))
{
    extract($row);
    echo "<tr>\n
            <td>$empl_idno</td>\n
            <td>$medical </td>\n 
            <td>$hse_ind</td>\n
            <td>$tf_ind</td>\n
            </tr>\n";
}
echo "</table><br>";
?>
Теги:

1 ответ

0

+ Изменить

 while($row = mysqli_fetch_assoc($result))  
    {
        extract($row);  
        echo "<tr>\n

в

 $colors = ['ES' => 'orange', 'X' => 'red', 'n/a' => 'gray'];

 while($row = mysqli_fetch_assoc($result))  
    {
        extract($row);  
        echo "<tr".(isset($colors[$tf_ind]) ? " style=\"color:".$colors[$tf_ind]."\"" : "") .">\n
  • 0
    Спасибо за помощь, но скрипт дал мне «ошибку на странице», изменил скрипт на: $ colors = "['ES' => 'orange', 'X' => 'red', 'n / a '=>' grey '] "; while ($ row = mysqli_fetch_assoc ($ result)) {extract ($ row); echo "<tr> \ n <td> $ empl_idno </ td> \ n <td> $ medical </ td> \ n <td> $ hse_ind </ td> \ n <td '. (isset ($ colors [ tf_ind])? 'style = \' color: '. $ colors [tf_ind].' \ '': ''). '> $ tf_ind </ td> \ n
  • 0
    @JJMorgan Вы добавили двойные кавычки в первой строке с $colors .
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню