2011-08-22 70 views
0

我的代碼下面將回顯用戶的位置,如果數字($納米)之間的範圍內下降 所以讓說我有$ NM =(10,4,3 ,3,1)分別是位置會(工作人員,工作人員,工作人員,營銷人員,而不是(營銷人員,工作人員,工作人員,工作人員,工作人員),我怎麼可以安排讓營銷放在第一位(營銷人員,工作人員,工作人員的工作人員),工作人員,工作人員)。訂單一個變量以從最高到顯示最低值

$query = "SELECT DISTINCT username,num FROM user ORDER BY num DESC LIMIT 5"; 
$result = mysql_query ($query) or die('query error'); 
while($line = mysql_fetch_assoc($result)){ 

$um = $line[username]; 
$nm = $line[num]; 

echo "name:$um"; 

if($nm <= 50){ 
echo "Position: president"; 
}else if($nm <= 40){ 
echo "Position: vice"; 
}else if($nm <= 30){ 
echo "Position: manager"; 
}else if($nm <= 20){ 
echo "Position: marketer"; 
}else if($nm <= 10){ 
echo "Position: staff"; 
} 
+1

您的代碼將爲每個數字打印'president'(除非它大於50)。 –

+1

如何'(10,4,3,3,1)''成爲(工作人員,工作人員,工作人員,營銷人員,工作人員)'(或'(營銷人員,工作人員,工作人員,工作人員,工作人員)'),所有的數字小於或等於10? –

回答

0
while($line = mysql_fetch_assoc($result)){ 
    $ums[] = $line[username]; 
    $nms[] = $line[num]; 
} 

usort($nms); 

foreach ($nms as $nm){ 
    if($nm <= 50){ 
     echo "Position: president"; 
    }else if($nm <= 40){ 
     echo "Position: vice"; 
    }else if($nm <= 30){ 
     echo "Position: manager"; 
    }else if($nm <= 20){ 
     echo "Position: marketer"; 
    }else if($nm <= 10){ 
     echo "Position: staff"; 
    } 
} 
+0

'usort'需要一個回調函數。 –

0

usort將解決你的問題

但如果錯了你的心不是的if/else?

不應該是什麼?

if($nm <= 10){ 
    echo "Position: staff"; 
} else if($nm <= 20){ 
    echo "Position: marketer"; 
} else if($nm <= 30){ 
    echo "Position: manager"; 
} else if($nm <= 40){ 
    echo "Position: vice"; 
} else if($nm <= 50){ 
    echo "Position: president"; 
}