2013-01-11 81 views
0

循環任務,我有一個客戶和僱員表:循環或PHP

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 

我一直在使用通常的循環嘗試但結果是隨機的,並不理想。

任何想法,人?

+0

循環分配的算法是什麼?通常情況下,這指的是像1,2,3,1,2,3等。 –

+0

@GordonLinoff這就是爲什麼,我只是認爲用循環法可能可以做我想要的這樣一個例子。沒有? – candies

回答

0

你可以讓一個數組並覆蓋前一個關鍵,使它所以每次郵政編碼只加載最後id_e有它例如:

如果您創建$ myArray的數組

=陣列(); 和當你從你的數據庫中導入你的數據到你的數組中時...我會給你這個代碼,但是我看不到你是如何導入的;如果你表明我可以幫助你正確格式化這種情況。

然後,您可以覆蓋重複的郵政編碼案例,並只將最後一個id_e帶到同一個郵政編碼。 ($ myarray as $ zipcode => $ id_e){ $ myarray [$ zipcode] = $ id_e; }

此外,我假設你目前是但確保你的MySQL查詢包括「ORDER BY id_e」在它的末尾。

+0

你的意思是查詢嗎? 我嘗試什麼: $查詢= 「選擇A.account_no,A.zipcode,B.id_e \t客戶A,員工乙 \t WHERE A.zipcode BETWEEN B.zipcode_a和B.zipcode_b \t ORDER BY card_id的」 ; $ result = mysql_query($ query); $ data = mysql_fetch_array($ result,MYSQL_ASSOC){ \t $ acc = $ data ['account_no]; \t $ zip = $ data ['zipcode']; \t $ id = $ data ['id_e']; $''''''''''''''''''''$'''' \t $ result = mysql_query($ query); } 我讓一張表臨時插入所有值。 – candies

+0

對不起我的錯誤,我編輯了id_e,來自「ORDER BY card_id」的結果。 – candies

+0

@ user1986:查詢是如何使用PHP/MySQL從數據庫獲取數據。例如:$ my_query = mysql_query(「SELECT * FROM my_table WHERE some_column = somevalue SORT BY some_other_column ASC」);本指南可以幫助http://www.w3schools.com/sql/sql_select.asp –