「報告された」列に基づいて、最も繰り返し発生する行を最初に選択する次のSQLがあります
$datan = mysql_query("
SELECT *, COUNT(reported) AS ct
FROM profile_reports
WHERE open = '1'
GROUP BY reported
ORDER BY ct DESC
LIMIT 1
") or die(mysql_error());
SQL で、どの「レポーター」(それぞれがユーザーに関連付けられた数字) が有用なレポートの割合が最も高いかを確認することも必要です。これは、次のように決定されます。
((raction > 0 AND raction < 99 AND open = '0' AND reporter = 'reporter') / (reporter = 'reporter' AND open = '0')) * 100
...そして、パーセンテージが最も高い行を最初に表示します。初期レポーターが設定されていないため、少し注意が必要です。
サンプルテーブルは次のとおりです。
+----+----------+----------+-------+----------+
| id | reporter | reported | open | raction |
+----+----------+----------+-------+----------+
| 1 | 24 | 26 | 0 | 3 |
| 2 | 24 | 23 | 0 | 0 |
| 3 | 24 | 29 | 1 | |
| 4 | 12 | 29 | 0 | 4 |
| 5 | 12 | 29 | 1 | |
| 6 | 24 | 21 | 1 | 0 |
+----+----------+----------+-------+----------+
ユーザー 29 (列: 報告済み) に関するレポートが他にもあることを確認してから、(上記のコード行に基づいて) どのレポート ユーザー (列: レポーター) が最高の割合を持っているかを確認します。この場合はユーザー 12 です。レポートを表示する