記事のリストを含む Web サイトがあります。DB にある記事の数を示す行を含めたいのですが、正確な数を表示したくありません。
10未満を切り捨てて欲しいので、例えば105記事なら「100+」とか言って欲しいです。
どうすればこれを行うことができますか?
同様のことを行うには、底 = 10 の対数を使用して丸める必要があります。
$exp= floor(log($num)/log(10));
$num = pow(10,$exp)."+";
これは10、100、1000 eccで機能します。あなたが求めたことを実行する方がよいと思います。
$count = 105;
$nearest10 = floor($count / 10) * 10;
printf("%d0+", $count * 0.1);
また
echo substr($count, 0, -1), '0+';
また、round
Docs関数もすぐに使用できます。
round($count, -1, PHP_ROUND_HALF_DOWN);
しかし、プラス記号がありません。
まず、COUNT()
MySQL の Aggregate 関数を使用して結果の総数を取得する必要があります。
次に、10 を基数としてモジュロ演算子 ( %
) を使用し、その値を主な結果から差し引く必要があります。これは次のようになります。
$sql = "SELECT COUNT(id) AS `total_num_records` FROM `table`";
$resource = mysql_query($sql);
$result = mysql_fetch_array($resource);
$totalRecords = $result['total_num_records'];
if ($totalRecords > 0) {
$remainder = $totalRecords % 10;
$showHumanFriendlyRecords = ($totalRecords - $remainder);
$strHumanFriendlyRecords = $showHumanFriendlyRecords . "+";
}
それが役に立てば幸い。