Door
Luc Gomes
op 19-08-2014 09:05
gewijzigd op 19-08-2014 09:06
1.943 views
goeden dag,
Met mijn beperkte mogelijkheden qua php loop ik tegen ghet volgende probleem aan.
In mijn database staan nu 6 records van 3 verschillende spelers twee verschillende speeldata:
03-09-2014 en 10-09-2014 met mijn onderstaande query krijg ik de resultaten van 03-09-2014 waar ik om begrijpelijke redenen de laatste data zou willen zien.
Ik heb het geprobeerd met een WHERE clausule maar dan werkt de SUM niet meer.
<?php
include("connect.php");
$query = "SELECT spelerid, speler, punten, marsen"
."SUM(punten) AS totpunten, SUM(marsen) AS totmarsen "
."FROM klaverjassen GROUP BY spelerid ORDER BY totpunten DESC ";
$result = mysql_query($query) or die(mysql_error());
SELECT spelerid, speler, punten, marsen,
SUM(punten) AS totpunten,
SUM(marsen) AS totmarsen
FROM klaverjasssen
WHERE .....
GROUP BY spelerid, speler, punten, marsen
ORDER BY .....
Je haalt hierbij geen datum op, dus misschien is dat ook handig om erbij te tonen.
Klopt ik sorteer op totpunten omdat ik daarmee de hoogste score als eerste krijg (ranglijst).
Met de WHERE clausule telt SUM alleen de waarde binnen de WHERE op, en ik wil dat hij alle "punten" optelt.
Ik ga hiermee aan de slag je hoort het van me.
Alvast bedankt.
[size=xsmall]Toevoeging op 19/08/2014 10:01:32:[/size]
Zoals ik al vertelde werkt dat ook niet ik krijg hiermee deze uit komst:
Punten vw marsen v.w. totpunten totmarsen
45 1 45 1
32 1 32 1
21 1 21 1
De totpunten zouden respectievelijk 55, 52 en 51 moeten zijn als het resutaalt van SUM(punten).
Verder krijg ik nu wel de laatste records van 10-09-2014.
[size=xsmall]Toevoeging op 19/08/2014 10:15:48:[/size]
Oke zal ik proberen.
Het idee is een "simpele" webbassed applicatie voor onze klaverjasclub, tot op heden kreeg ik per email de uitslagen en die zette ik dan op onze website.
Dat ging natuurlijk geregeld de mist in dus vandaar.
De klaverjasclub speelt wekelijks van september tot april ofzo.
wat ik nu heb is een invulformulier waarin wekelijks per speler de behaalde punten en marsen worden ingevoerd.
Die moeten dan compleet opgeteld, worden weer gegeven in klaverjas.php, dus de totaal behaalde punten en marsen dat optellen doe ik met SUM alle behaalde "punten" van betreffende speler.
Mijn database bevat de volgende tabellen:
Spelers - met de namen van de spelers en een ID
speeldata - met alle speeldagen en een ID
Deze worden gebruikt voor dropdown in het invulformulier
Klaverjassen - de eigelijke opslag met de volgende velden
Kl_ID
Speeldata
Spelerid
Speler
Punten
Marsen
Totpunten
Totmarsen
Nu ben ik lang bezig geweest om in de afhandeling van het formulier de punten op te tellen bij tot punten maar dat kreeg ik niet voor elkaar.
De punten werden opgeteld bij het vorige record van de speler:
dus:
week 1 ID 1 behaalde speler a 20 punten en 1 mars dat ging prima bij totpunten 20 en bij totmarsen 1
week 2 ID 2 behaalde speler a 40 punten en 2 marsen en dat werd opgeteld bij het record met ID 1
Wat ik wil is de meest recent gespeelde partijen, met de laatst behaalde (ingevoerde) punten en marsen.
En bij totpunten de totaal behaalde punten en bij tomarsen de totaal behaalde marsen.
ik hoop dat het zo een beetje duidelijk is.
[size=xsmall]Toevoeging op 19/08/2014 11:33:30:[/size]
Sorry voor het extra bericht, maar ik ben natuurlijk ondertussen lekker aan het rommelen in klaverjas.php
geef onderelkaar een tabelletje met de waarden in de database
en een tabelletje waar je aangeeft wat je dan wilt verkrijgen.
Dat werkt in elk geval voor mij 100x duidelijker dan een heel verhaal.
En voor de (database)programmeur moet het niet nodig zijn om te begrijpen wat een applicatie doet, maar wel "wat staat erin" en "hoe moet het resultaat eruit zien".