我已成功运行此搜索,可返回玩家的技能和属性。我希望在特定列中获得前十个百分点。我试图用这个:
$j=0;
while($percentile_row = mysql_fetch_array($percentile_result)){
echo $percentile_row['user_id'].'<br />';
$j++;
}
echo 'Total: '.$j.'<br />';
echo round(100/$j,1);
$players_worth = round(100/$j,1);
while($players_worth > 10){
echo 'adding<br/>';
$players_worth + $players_worth;
}
这似乎是一种简单的方法。只是当 $ players_worth + $ players_worth; 部分在while循环中时不起作用。如果我只是回应它,它就有效。
或者我可以在查询中添加一些内容,以便按百分比进行选择吗?我必须为大约15列做到这一点。
这是我现有的查询:
SELECT user_id FROM Players ORDER BY user_id DESC
感谢您提供的任何提示。
修改
我试过这个,但没有运气,当我var_dump它,它只是说“bool(false)”:
MySQL: LIMIT by a percentage of the amount of records?
答案 0 :(得分:0)
如果您已经知道数据库中的记录数,则可以使用LIMIT:
"SELECT user_id FROM Players ORDER BY user_id DESC LIMIT ".$rowCount*$percentage/100
我不知道在查询中使用百分比直接的方法,除非你已经知道你正在检查的值的截止点,这意味着你已经经历了数据库并检查了所有的值。
答案 1 :(得分:0)
我明白了,我就是这样做的:
首先我获得所有行,然后......
echo 'Total rows in table: '.$j.'<br />';
$twentyfive = floor($j*.25);
$fifteen = floor($j*.15);
$ten = floor($j*.1);
echo $ten.' '.$fifteen.' '.$twentyfive.'<br /><br />';
$topten=0;
while($topten < $ten && $percentile_row2 = mysql_fetch_array($percentile_result2)){
$change = "UPDATE Players SET " . $column['field'] ."=concat(" . $column['field'] . ",'%') WHERE user_id='" . $percentile_row2['user_id'] . "'";
$wpdb->get_results($change);
echo '<strong>in top 10%</strong> - '.$percentile_row2['field_1'].' - '.$percentile_row2['user_id'].'<br />';
$topten++;
}
等等其他百分位数。所有的回声都只是为了追踪它。