vraag bij sorteren op DESC.

Status
Niet open voor verdere reacties.

junkyspecial

Gebruiker
Lid geworden
13 nov 2016
Berichten
14
PHP:
<body>
	<div class="container">
		<div class="koptext"> <font color=red>Winlijst</font></div>
		
		<?php
			// Database gegevens
			$servername = "localhost";
			$username = ".....";
			$password = ".....";
			$dbname = ".....";

			// Connectie maken
			$conn = new mysqli($servername, $username, $password, $dbname);
			// Connectie controleren
			if ($conn->connect_error) {
				die("Kan geen verbinding maken: " . $conn->connect_error);
			}
			
			$sql = "SELECT DISTINCT naam, SUM(score) FROM logs GROUP BY naam ORDER BY score DESC";
			

			//$sql = "SELECT Naam, Score sum(Score) FROM logs ORDER BY score DESC";
			$result = $conn->query($sql);
			
			// Als er minimaal 1 input gevonden is
			if ($result->num_rows > 0) {
				echo "<table><tr><th>Naam</th><th>Aantal</th></tr>";
				// Voor elk veld een nieuwe regel in het tabel maken
				while($row = $result->fetch_assoc()) {
					echo "<tr><td>".$row["naam"]."</td><td>".$row["SUM(score)"]."</td></tr>";
				}
				echo "</table>";
			} else {
				echo "<font color=white>Er is geen data om weer te geven!</font>";
			}
			// Afsluiten van de connectie
			$conn->close();
		?> 
	</div>
</body>


CREATE TABLE IF NOT EXISTS `logs` (
`naam` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`score` bigint(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Gegevens worden uitgevoerd voor tabel `logs`
--

INSERT INTO `logs` (`naam`, `score`) VALUES
(':baas:', 1),
(':baas:', 1),
('Test', 10),
('Hassan', 5),
(':baas:', 1),
(':baas:', 1),
('Jody', 6),
(':baas:', 1),
('Jody', 2),
(':baas:', 1),
(':baas:', 2);

opzig werkt het alleen het probleem is als ik meer maal namen apart invoer dan gaat de scorelijst op den duur toch door elkaar.
je ziet wat ik bedoel bij de onderste 2 op onderstaande site

voorbeeld http://afk-fgp.esy.es/test

wie kan mij helpen thanks :)
 
Laatst bewerkt:
je doet je sort op score niet sum(score). Dus wordt de sortering gedaan op de hoogste individuele score:

test 10
jody 6
hassan 5
baas 2
 
dat moet ook van hoog naar laag

alleen hij gooit als ik bv test 1 test 1 test 1 = test 3 score geef
en dan bv piet 2 dan staat test nog lager als piet zegt die wel test 3 en piet 2 maar staan ze verkeerd om
 
Laatst bewerkt:
omdat je sorteert op de hoogste deelscore niet op het totaal, zoals ik in mijn vorige antwoord al aangaf.

test heeft 1,1,1 totaal:3 hoogste deelscore "1"
piet heeft "2" totaal:2 hoogste deelscore "2"

sorteren op deelscore geeft dus Piet -> test

[SQL]
SELECT DISTINCT naam, SUM(score) as totaal FROM logs GROUP BY naam ORDER BY totaal DESC";
[/SQL]
 
Verplaatst van PHP naar MySQL
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan