0

我有一个客户和员工表:

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

我一直在尝试使用通常的循环,但结果是随机的并且不可取。

任何想法,人们?

4

1 回答 1

0

您可以创建一个数组并覆盖前一个键以使其成为每个邮政编码只加载最后一个 id_e 以拥有它,例如:

如果您使用 $myarray = array(); 创建一个数组 在您的查询中,当您将数据库中的值导入数组时...我会给您代码,但我看不到您是如何导入它的;如果您表明我可以帮助您针对这种情况正确格式化它。

然后,您可以在此处覆盖重复的邮政编码案例,并且只使用相同邮政编码的最后一个 id_e。foreach($myarray as $zipcode => $id_e){ $myarray[$zipcode] = $id_e; }

另外我假设您目前是,但请确保您的 mysql 查询在其末尾包含“ORDER BY id_e”。

于 2013-01-11T02:29:59.240 回答