I am trying to make it so whenever it says 'Add' in the table, it turns green, whenever it is 'Remove' it turns red, and 'Fix' turns blue. But it just shows as the default colour, which is $color4 in the code.
My code:
<?php
$db_host = 'HIDDEN'; // Server Name
$db_user = 'HIDDEN'; // Username
$db_pass = 'HIDDEN'; // Password
$db_name = 'HIDDEN'; // Database Name
$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}
$sql = 'SELECT *
FROM changelog ORDER BY id DESC';
$query = mysqli_query($conn, $sql);
if (!$query) {
die ('SQL Error: ' . mysqli_error($conn));
}
?>
<?php
function switchColor($row) {
//Define the colors first
$color1 = '#BAFFAE';
$color2 = '#AEFDFF';
$color3 = '#FFAEAE';
$color4 = '#DED6BA';
/*Change the 'cases' to whatever you want them to be,
so if you want to change the color according to
occupation, write down the possible occupations or if
the color changes according to gender, name the gender
names that come out of the database (eg. case 'male':).*/
switch ($row) {
case 'Add':
echo $color1;
break;
case 'Fix':
echo $color2;
break;
case 'Remove':
echo $color3;
break;
default:
echo $color4;
}
}
?>
<html>
<head>
<title>Arny's Test Server | CHANGELOG |</title>
<style type="text/css">
body {
background-image: url(removed);
font-size: 15px;
color: #e1edff;
font-family: "segoe-ui", "open-sans", tahoma, arial;
padding: 0;
margin: 0;
}
table {
margin: auto;
font-family: "Lucida Sans Unicode", "Lucida Grande", "Segoe Ui";
font-size: 12px;
}
h1 {
margin: 25px auto 0;
text-align: center;
text-transform: uppercase;
font-size: 17px;
}
table td {
transition: all .5s;
}
/* Table */
.data-table {
border-collapse: collapse;
font-size: 14px;
min-width: 537px;
}
.data-table th,
.data-table td {
border: 1px solid #e1edff;
padding: 7px 17px;
}
.data-table caption {
margin: 7px;
}
/* Table Header */
.data-table thead th {
background-color: #508abb;
color: #FFFFFF;
border-color: #6ea1cc !important;
text-transform: uppercase;
}
/* Table Body */
.data-table tbody td {
color: #353535;
}
.data-table tbody td:first-child,
.data-table tbody td:nth-child(4),
.data-table tbody td:last-child {
text-align: right;
}
.data-table tbody tr:nth-child(odd) td {
background-color: <?php switchColor($result['type']) ?>;
}
.data-table tbody tr:nth-child(even) td {
background-color: <?php switchColor($result['type']) ?>;
}
.data-table tbody tr:hover td {
background-color: #ffffa2;
border-color: #ffff0f;
}
/* Table Footer */
.data-table tfoot th {
background-color: #e5f5ff;
text-align: right;
}
.data-table tfoot th:first-child {
text-align: left;
}
.data-table tbody td:empty
{
background-color: #ffcccc;
}
</style>
</head>
<body>
<h1>Arny's Test Server | CHANGELOG |</h1>
<table class="data-table">
<thead>
<tr>
<th>ID</th>
<th>Type</th>
<th>Description</th>
<th>Platform</th>
<th>Developer</th>
<th>Timestamp</th>
</tr>
</thead>
<tbody>
<?php
while ($row = mysqli_fetch_array($query))
// Ascending Order
{
echo '<tr>
<td>'.$row['id'].'</td>
<td>'.$row['type'].'</td>
<td>'.$row['description'].'</td>
<td>'.$row['platform'].'</td>
<td>'.$row['developer'].'</td>
<td>'.$row['timestamp'].'</td>
</tr>';
}?>
</tbody>
</table>
</body>
</html>
But it doesn't work. I have tried for a long time to get this to work, so I would appreciate the help! Thanks.
$arrayand where it is defined?