我有一个客户和雇员表:
Customers
.account_no
.zipcode
-----------------------
account_no | zipcode
-----------------------
1111000100 | 12345
1222000100 | 25678
1333000100 | 47890
1444000100 | 50000
1555000100 | 53456
1666000100 | 63987
Employees
.id_e
.zipcode_a
.zipcode_b
.card_id
---------------------------------------------
id_e | zipcode_a | zipcode_b | card_id
---------------------------------------------
1 | 10000 | 64000 | 1011
2 | 10000 | 54000 | 1002
3 | 50000 | 64000 | 1003
假设我有6个顾客,3个雇员;查询结果将如下所示:
---------------------------------
account_no | zipcode | id_e
---------------------------------
1111000100 | 12345 | 2
1111000100 | 12345 | 1
1222000100 | 25678 | 2
1222000100 | 25678 | 1
1333000100 | 47890 | 2
1333000100 | 47890 | 1
1444000100 | 50000 | 2
1444000100 | 50000 | 3
1444000100 | 50000 | 1
1555000100 | 53456 | 2
1555000100 | 53456 | 3
1666000100 | 63987 | 3
1666000100 | 63987 | 1
我想将这些客户帐户以循环或轮询的方式分配给每个员工,如下所示:
---------------------------------
account_no | zipcode | id_e
---------------------------------
1111000100 | 12345 | 2
1222000100 | 25678 | 1
1333000100 | 47890 | 2
1444000100 | 50000 | 1
1555000100 | 53456 | 3
1666000100 | 63987 | 1
我一直在尝试使用通常的循环,但结果是随机的,不理想的。
大家有什么想法吗?您可以创建一个数组并覆盖前一个键,使每个邮政编码只加载最后一个id_e来拥有它例如:
如果你创建一个数组$myarray = array();在你的查询,当你从你的数据库导入值到你的数组…我会给你们代码但是我不知道你们是怎么导入它的;如果你能证明我能帮你正确地格式化它的话。
那么这就是您覆盖重复的邮政编码的地方,并且只使用具有相同邮政编码的最后一个id_e。Foreach ($myarray => $id_e){$myarray[$zipcode] = $id_e;}
我也假设你目前是,但要确保你的mysql查询包括" ORDER BY id_e"在它的末尾