У меня две таблицы:
Таблица 1 (общий балл)
Таблица 2 (недельный балл)
У меня есть таблица лидеров, где я повторяю общее значение оценки из Таблицы 1 :
Проблема: то, что я пытаюсь сделать здесь, состоит в том, что кто бы ни забрел «-10» в таблице 2 (недельный балл), я хочу предупредить пользователя, выделив цвет своего поля в таблице лидеров, который теперь желт, до красного.
текущий css:
li mark div { display: block; margin: 4px; padding: 5px; min-height: 50px; border: 2px solid #eebb55; border-radius: 7pt; background: grey; }
Php участвует в отображении списка. Это для «общего» (правая вкладка в панели лидеров). Аналогично существуют и еженедельно.
<div id="overalllb" class="leadboardcontent" style="display:none"> <div class="leaderboard"> <ol> <li> <mark> <?php while( $toprow2 = sqlsrv_fetch_array( $stmt3) ) { echo "<div class='parent-div'><span class='rank'>" . $toprow2['overallRank'] . "</span><span class='name'>" . $toprow2['EmployeeName'] . "</span><span class='points'>" . $toprow2['Total_points_Rewarded'] . "</span></div>"; } ?> </mark> </li> </ol> </div>
Запросы, переданные для получения информации из обеих таблиц:
1.query 1 – узнать всех сотрудников со счетом -10.
$q200 = " select * from Table2 where WeekNumber = 'week1' and pointsRewarded = '-10';"; $stmt200=sqlsrv_query($conn,$q200); if($stmt200==false) { echo 'error to retrieve info !! <br/>'; die(print_r(sqlsrv_errors(),TRUE)); }
запрос 2- для извлечения из таблицы 1 всех сотрудников:
$q20 = "select * from EmployeeTable order by Total_points_Rewarded desc"; $stmt20=sqlsrv_query($conn,$q20); if($stmt20==false) { echo 'error to retrieve info !! <br/>'; die(print_r(sqlsrv_errors(),TRUE)); }
Код, который я пробовал:
<?php while( $toprow20 = sqlsrv_fetch_array( $stmt20) ) { echo "<div class='parent-divv'><span class='rank'>" . $toprow20['overallRank'] . "</span><span class='name'>" . $toprow20['EmployeeName'] . "</span><span class='points'>" . $toprow20['Total_points_Rewarded'] . "</span></div>"; }?> <?php if ($toprow20['EmployeeID'] == $toprow200['EmployeeID'] ) ?>{ <style> .parent-divv { border: 1px solid red; } </style> }
Приведенный выше код изменяет весь цвет на красный. Я хочу, чтобы только совпадающие имена / идентификаторы в обоих запросах были red.rest, остаются такими, какие есть. Я использую PHP, пожалуйста, предложите мне способ сделать это. Благословите Бога.
1) Присоедините запросы к одному
select EmployeeTable.*,Table2.pointsRewarded as `weeklyDelta` from EmployeeTable join Table2 on EmployeeTable.EmployeeID = Table2.EmployeeID where Table2.WeekNumber = 'week1' order by Total_points_Rewarded desc
2) Затем дайте сотрудникам отрицательные дельта особый класс
<?php while( $toprow2 = sqlsrv_fetch_array( $stmt3) ) { echo "<div class='parent-div" . ($toprow2['weeklyDelta'] <= -10 ? " dropped" : "") . "'><span class='rank'>" . $toprow2['overallRank'] . "</span><span class='name'>" . $toprow2['EmployeeName'] . "</span><span class='points'>" . $toprow2['Total_points_Rewarded'] . "</span></div>"; } ?>
3) дать этим сотрудникам стиль
.parent-div.dropped { color:red }