我是编程新手,所以这可能是一些基本/显而易见的东西,但我正在尝试使用小 div 矩形设计一个基本的网格样式页面,以在新行中显示每个员工,然后显示分配给该员工的任何工作成员将与显示其姓名的第一个 div 内联显示。
我在这里尝试实现的逻辑:
问题是我只能让它向第一个工作人员显示分配的工作,就像我用来显示工作的循环在第一个工作人员之后停止并且不会继续寻找其他工作也分配给其他工作人员。
它会愉快地显示已分配给第一个工作人员的 5 个不同的工作,但之后它不会继续检查是否已分配给其他工作人员。
它会很高兴地显示我为每个不是从数据库数据动态生成的员工手动编写的“测试工作”。
我发现了2个类似的问题 如何使用php根据mysql表中的数据自动创建div? 使用 sql 表中的数据自动创建 div 但它们并没有真正涵盖仅根据数据库中的名称匹配来显示某些 div。
到目前为止,这是我的代码,几乎可以正常工作
$sql = 'SELECT staff_id, name, role
FROM tbl_staff
ORDER BY staff_id';
$q = $pdo->query($sql);
$q->setFetchMode(PDO::FETCH_ASSOC);
$sql2 = 'SELECT job_addy, job_type, assigned_to
FROM tbl_jobs';
$q2 = $pdo->query($sql2);
$q2->setFetchMode(PDO::FETCH_ASSOC);
<div class ="main">
<?php while ($row = $q->fetch()): ?>
<div class ="staffsq">
<span><strong><?php echo htmlspecialchars($row['name']); ?></strong></br>
(<?php echo htmlspecialchars($row['role']); ?>)</span>
</div>
<?php while ($row2 = $q2->fetch()): ?>
<?php if ($row['name'] == $row2['assigned_to']): ?>
<div class ="jobsq">
<span><strong><?php echo htmlspecialchars($row2['job_addy']); ?></strong></br>
<?php echo htmlspecialchars($row2['job_type']); ?></span>
</div>
<?php endif; ?>
<?php endwhile; ?>
<div class ="jobsq">
<span><strong>Test Job</strong></br>
<?php echo htmlspecialchars($row['name']); ?></span>
</div>
</br>
<?php endwhile; ?>
</div>
css 只是给出矩形的大小并帮助将它们定位为内联。
一切都很基本,我只想让分配工作的主要功能起作用。
.main {
background-color: #c7c7c7;
box-sizing: border-box;
padding: 5px;
white-space: nowrap;
overflow: auto;
}
.staffsq {
position: absolute;
display: inline-block;
background-color: #99ccff;
height: 92.7px;
width: 150px;
margin: 0px;
padding: 0px;
box-sizing: border-box;
font-size: 15px;
text-align: center;
white-space: nowrap;
overflow: hidden;
z-index: 10;
}
.jobsq {
position: relative;
left: 155px;
display: inline-block;
background-color: #ffff99;
height: 92.7px;
width: 150px;
margin: 0px;
padding: 0px;
box-sizing: border-box;
font-size: 15px;
text-align: center;
white-space: nowrap;
overflow: hidden;
z-index: 9;
}