我正在尝试使用填充了db。
的信息的两个标题创建表我必须检查用户是否在一个月中的特定日期的表中有记录。
如果用户在表中有记录(checked_user),那么我应该在日期列和用户行中打印“是”如果用户没有该日期的条目我应该打印“否”。
一个标题将包含所选月份的天数,而另一个标题将打印用户名。
我在数据库中有两个表(users和checked_users)。
用户表包含用户数据,而checked_users包含是否检查用户的具体日期。
然后我有标签
表用户:
UposlenikID |UposlenikImePrezime | UposlenikStatus
1 User1 0
2 User2 0
3 User3 0
表checked_user:
Id | UposlenikID | Vrijeme | Command
1 4 2016-11-30 14:28:02 Odjava
2 10 2016-11-30 14:30:54 Odjava
3 3 2016-12-01 09:17:00 Prijava
4 4 2016-12-01 09:17:03 Prijava
12 4 2016-12-01 09:17:18 Odjava
首先,我创建Query以从表中获取所有用户
$users = "SELECT UposlenikID, UposlenikImePrezime FROM uposlenici WHERE UposlenikStatus = 0";
$q = $conn->query($users);
然后我创建表:
$date = '2016-11-01';
$end = '2016-11-' . date('t', strtotime($date)); //get end date of month
<table border="1">
<thead>
<tr>
<th></th>
<th>
<?php
while(strtotime($date) <= strtotime($end)) {
$day_num = date('d', strtotime($date));
$day_name = date('l', strtotime($date));
$day_month = date('m', strtotime($date));
$date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
echo "<td>$day_name <br/> $day_num | $day_month</td>";
} ?>
</th>
</tr>
</thead>
<tbody>
<?php
$i=1;
while($r=$q->fetch()) {
?>
<tr>
<td>
<?php echo $i++; ?>
</td>
<td>
<?=$r['UposlenikImePrezime']; ?>
</td>
<td>
</td>
</tr>
<?php } ?>
</tbody>
答案 0 :(得分:0)
使用SQL查询(Case&amp; Join),
SELECT user.UposlenikID , user.UposlenikImePrezime,checked_user.Vrijeme,
CASE WHEN user.UposlenikID=checked_user.UposlenikID THEN 'yes'
ELSE 'No' END AS is_checked
FROM user
LEFT OUTER JOIN checked_user
ON (user.UposlenikID=checked_user.UposlenikID) ;
获取查询结果如下
UposlenikID : UposlenikImePrezime : Vrijeme : is_checked
1 | user1 | NULL | No
2 | user2 | NULL | No
3 | user3 | 2016-12-01 09:17:00 | Yes
然后使用php将结果格式化为表。