2011-08-22 54 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"; 
}