php - 循环不重复表列中的值

标签 php mysql loops foreach

如果标题写得不好,我深表歉意,因为我不确定到底该怎么调用它!

我有一个非常基本的表设置:employees 和employees_deductions。我想加入这两个并用 php 将内容显示在表格中。

我得到了员工:

$employees = $wpdb->get_results("SELECT * from employees");

然后我循环遍历 $employees,在每一个上,我都会得到扣除额,然后将它们显示在表格中:(下面的代码已简化)

foreach($employees as $emp) {
  $deductions = $wpdb->get_results("SELECT * FROM employee_deductions WHERE employee_id = $this_employee_id");

  foreach($deductions as $ded) {
    <tr>
       <td>name</td>
       <td>deduction</td>
    </tr>
  }

}

我的问题是,如果直接上方的行中的单元格包含完全相同的“名称”,如何才能在空白上方包含第一个包含“名称”的单元格?

我得到了什么:

+------+-----------+
| name | deduction |
+------+-----------+
| John |       100 |
| John |       142 |
| John |       204 |
| Mary |       200 |
| Mary |       340 |
+------+-----------+

期望的结果:

+------+-----------+
| name | deduction |
+------+-----------+
| John |       100 |
|      |       142 |
|      |       204 |
| Mary |       200 |
|      |       340 |
+------+-----------+

最佳答案

您可以有一个额外的变量,用于存储姓氏或 ID,然后将其与当前名称/ID 进行比较。如果匹配,则仅显示一个空列,如果不匹配,则显示名称。

假设您的 SELECT 查询按名称排序,这是可行的:

foreach($employees as $emp) {

    $lastid = ''; /* WHERE YOU WILL STORE THE LAST ID OR NAME; JUST LEAVE IT EMPTY AT FIRST */

    $deductions = $wpdb->get_results("SELECT * FROM employee_deductions WHERE employee_id = $this_employee_id");

    foreach($deductions as $ded) {
        echo '<tr>';
        // JUST REPLACE THE CORRESPONDING VARIABLE/CONDITION BELOW
        echo (empty($lastid) || $lastid != $this_employee_id)?'<td>name</td>':'<td></td>';
        echo '<td>deduction</td>
              </tr>';

        $lastid = $this_employee_id; /* STORE THE CURRENT ID/NAME TO THIS VARIABLE */

    }

}

关于php - 循环不重复表列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41560313/

相关文章:

JAVA - 如何在二维数组的行和列中查找重复值?

php - 是否可以列出已包含的 PHP 文件以制作最终页面?

javascript - 当数据库中没有要显示的视频时隐藏视频容器 HTML PHP

mysql - 在django中同步2个数据库

mysql同字段值累计和

java - 如何仅在需要时显示框架并设置框架始终显示在顶部?

php - 资源访问锁PHP

php - Laravel 5.2 表单验证请求无法正常工作

php - 如何在带有链接的列表中获取json数据

python - 空列表在 while 和 for 循环的上下文中不生成输出