0

我让这个搜索成功运行,返回玩家的技能和属性。我想在特定列中获得前百分之十。我试图使用这个:

$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:限制记录量的百分比?

4

2 回答 2

0

如果您已经知道数据库中的记录数,则可以使用 LIMIT:

"SELECT user_id FROM Players ORDER BY user_id DESC LIMIT ".$rowCount*$percentage/100

我不知道直接在查询中使用百分比的任何方法,除非您已经知道要检查的值的截止点,这意味着您已经浏览了数据库并检查了所有值。

于 2014-02-14T22:16:29.653 回答
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++;

}

其他百分位数依此类推。所有的回声都只是为了追踪它。

于 2014-02-14T23:50:04.600 回答