Hoi,

Ik ben bezig met een hoogste score lijst te maken en die werkt aardig alleen klopt er 1 ding nog niet.
Hij moet de score van hoog naar laag laten zien (er zijn meerdere spelers).

Als de score van speler 1 bijv. 300 is en van speler 2 bijv. 450 is laat hij netjes 450 zien als hoogste score.

Maar is de score van speler 1 bijv. 300 en van speler 2 bijv. 2950 dan zegt hij dat speler 1 bovenaan staat.

Het lijkt wel of hij dan sorteerd op het eerste getal, echter moet hij het hele getal berekenen.

De query die ik gebruik is:

$result = mysql_query("SELECT * FROM e107_tournaments_plays where tournament_id = $bereken ORDER by score DESC");

Iemand enig idee wat ik fout doe?

Gr. Kees.
Je kan dit gebruiken.

<?php
echo removeDecimals(236.12)
.'<br>'. removeDecimals(23)
.'<br>'. removeDecimals(12.2359)
.'<br>'. removeDecimals(15.47)
.'<br>'. removeDecimals(157);

function removeDecimals($number) {
$small = 0.000001;
if (abs($number - floor($number)) < $small) {
return (int) $number;
}
return $number;
}
?>

Bij jou wordt dat dus iets als

... removeDecimals($row['score']) ...

EDIT:
of zo:
<?php
function removeDecimals($number) {
switch (getType($number)) {
case 'integer': return (int) $number; break;
default: return $number; break;
}
}
?>
Over die vraag had ik heen gelezen, bij de games waarbij je de score als geheel getal wilt tonen doe je dit:

SELECT TRUNCATE(t.score, 0) AS score, .....
Is het ook niet op te lossen door de volgende manier:

De database laat je gewoon alles lekker met 2 decimalen eindigen dus altijd alles .XX

$score staat de score in als die wordt uitgelezen.

Kun je dan iets in deze geest maken:
IF $score EINDIGT op .00 schrap .00 ELSE laat .XX gewoon zien.

Dan zijn we er ook :)

Weet iemand dat?
Tuurlijk kan dat:

<?php
$score = (float) $score; // typecasten voor de zekerheid
if ($score - floor($score) > 0) {
	$decimals = 2;
}
else {
	$decimals = 0
}
echo number_format($score, $decimals, ',', '.'); //staat het gelijk goed bij meerdere decimalen
?>

Dit dan even in een functie zetten
Het is gelukt!

Bedankt allemaal voor het helpen, perfect zo!

Gr. Kees.

Reageren