2015-05-29 59 views
-5

我有一個MySQL表,其中有一組人連接到他們的名字。他們可能是1,2,3或4.我需要在每個組中均勻分佈成員的情況下創建組。換句話說,我不希望所有的4都在一個組中,或者所有的3都在另一個組中。我希望它能夠均勻分配。 這是我到目前爲止。它迴應了人們的觀點,並按照他們的層次對他們進行分組,但我不確定如何讓他們的團隊平均分配他們的水平。 我還有一些代碼,儘管我因爲缺乏經驗而生氣,但我希望有人能夠告訴我如何清理代碼。它的工作原理是我想要的,但感覺很難看。任何幫助將不勝感激。將數據均等分配到組

<?php 

include_once 'connect.php'; 

$level1 = array(); 
$level2 = array(); 
$level3 = array(); 
$level4 = array(); 

$sql1 = "SELECT * FROM table WHERE level = 1"; 
$stmt = $handler->prepare($sql1); 
$stmt->execute(); 

$row = $stmt->fetchAll(); 

foreach($row as $rows) 
{ 

$level1[] = $rows['name']; 

} 

$sql2 = "SELECT * FROM table WHERE level = 2"; 
$stmt = $handler->prepare($sql2); 
$stmt->execute(); 

$row = $stmt->fetchAll(); 

foreach($row as $rows) 
{ 

$level2[] = $rows['name']; 

} 

$sql3 = "SELECT * FROM table WHERE level = 3"; 
$stmt = $handler->prepare($sql3); 
$stmt->execute(); 

$row = $stmt->fetchAll(); 

foreach($row as $rows) 
{ 

$level3[] = $rows['name']; 

} 

$sql4 = "SELECT * FROM table WHERE level = 4"; 
$stmt = $handler->prepare($sql4); 
$stmt->execute(); 

$row = $stmt->fetchAll(); 

foreach($row as $rows) 
{ 

$level4[] = $rows['name']; 

} 

$sql5 = "SELECT * FROM table"; 
$stmt = $handler->prepare($sql5); 
$stmt->execute(); 

$row = $stmt->fetchAll(); 
$result = count($row); 

for($i=0; $i<=$result; $i++) 
{ 

echo $level1[$i]; 
echo"<br>"; 
echo $level2[$i]; 
echo"<br>"; 
echo $level3[$i]; 
echo"<br>"; 
echo $level4[$i]; 
echo"<br>"; 

} 

?> 
+1

代碼在哪裏? –

+4

@ b0s3 *「我現在沒有任何代碼,因爲我現在處於」理論「階段。」* –

+0

它不需要代碼。至少你可以解釋最少的解決方案。 – Makesh

回答

0

聽起來像分佈的簡單的循環樣式,它需要的1〜4的循環範圍內,使用該作爲索引,其累積計數爲每個組的陣列。如果我理解了你所問的內容,那麼這可能會解決你描述的問題。

如果你仍然在這個理論方面,請畫出你的意思。代碼示例將意味着答案可以解決您的問題,而不是從理論上解決問題。

+0

非常感謝。我要去看看這個廣爲人知的繪圖板,看看我能不能讓代碼運行起來,然後我會發布我的東西。我感謝你的發佈可能性,而不是僅僅反駁我缺乏「疊加」禮儀! – user3006141

+0

這聽起來像是你的想法在你的腦海中,但是當你嘗試將它變成代碼時,不確定性因素可能意味着你編碼的內容不是基於對問題的真正理解。我建議一個簡單的順序圖可以幫助你定義它。你的規範對我有意義,你可以發佈僞代碼 –

+0

我已經想出了代碼,但有沒有辦法將5個查詢放入1? – user3006141