2017-01-30 3 views
0

Я извлекаю данные сотрудников из базы данных mysql в массив и отображает их в таблице. все работает, но я хочу, чтобы применить условие в массиве,применить css к определенному элементу в массиве

Если зарплата больше, то 30000, то измените его цвет на красный .

Пробовал

$q = "select name, salary from array"; 
$res = mysqli_query($link, $q); 
$arr = array(); 
while ($data = mysqli_fetch_assoc($res)) { 
    $arr[] = $data; 
} 
echo '<table class="table table-hover"> 
     <th>Name</th><th>Salary</th>'; 
$keys = array_keys($arr); 
foreach ($keys as $key => $value) { 
    echo "$value , "; 
} 
for ($i=0; $i < count($arr); $i++) { 
    echo '<tr>'; 

    foreach ($arr[$keys[$i]] as $key => $value) { 
     if ($arr[$keys[$i]['salary']] > 34000) { 
     echo "<td style='color: red; background-color:pink;'> $key=>$value </td>"; 
     }else{ 
      echo "<td> $key=>$value </td>"; 
     } 
    } 
    echo "</tr>"; 
} 
echo '</table>'; 

это как моя таблица выглядит

enter image description here

я хочу изменить цвет зарплаты, если она больше, чем 30000 ...

+0

* «больше 30 000» *, и вы используете '> 34000'. –

ответ

0

Изменить

if ($arr[$keys[$i]['salary']] > 34000) { 

в

if ($value > 30000) { 
0

Я думаю, что вы только что получили немного потерял при обработке массива, который содержит другие массивы. Простой цикл foreach - это самый простой способ справиться с этим.

echo '<table class="table table-hover"><th>Name</th><th>Salary</th>'; 

foreach ($arr as $row) { 
    echo '<tr>'; 

    // using a ternary operator here rather than an IF 
    $style = $row['salary'] > 30000 
      ? ' style="color:red;background-color:pink;"' 
      : ''; 

    echo "<td>{$row['name']}</td>"; 
    echo "<td $style>{$row['salary']}</td>"; 

    echo '</tr>'; 
}