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());


while ($row = mysql_fetch_array($result)) {



?>

En even verder op:

<?
}
?>

Iemand een oplossing???

Alvast bedankt.
Er staan maar twee waarden in speeldata, omdat ik nog bezig ben met het werkend krijgen de hele "applicatie" staat nog in de kinderschoenen.

De data van de speeldata staat apart:

spelers:
spelerid
speler

speeldata:
dataid
speeldata

Scores:

Ga ik aanmaken, maar ik zal wel dom zijn de INT begrijp ik maar wat is FK?

En hoe gaat ik dat opvragen want tot nu toe bevraag ik maar een tabel en nu moet ik er 3 gaan aanroepen.
Of begrijp ik het gewoon niet?
Foreign Key

"verwijst naar een kolom in een andere tabel".

dus als in Speler staat dat speler_id = 1 hoort bij Piet,
dan weet je vauit Scores dan als daar staat dat speler_id = 1, dan weet je daaruit dat het om Piet gaat.

Liefst stel je het dan ook nog zo in, dat je speler_id niet kunt verwijderen als er nog scores zijn van hem, of dat je scores kunt noteren voor speler_id = 100 als je dat id niet hebt.
Huh, ik ben bang dat je mij te hoog inschat :)

Kom echt net kijken in het PHP/MySQL gebeuren, jij lacht er waarschijnlijk om maar ik vond dat ik al een aardig eind op weg was.
Best moeilijk om het onder de knie te krijgen, heb je niet een stuk voorbeeld (script?) voor mij dat ik kan zien hoe een en ander werkt?

Het zou mij echt een heel eind op weg helpen.
[code]
spelers:

1: Speler A
2: Speler B
3: Speler C

Wedstrijden
1: 2014-03-20
2: 2014-03-31

Scores
speler_id, wedstrijd_id, punten, marsen
1 1 10 1
2 1 9 1
3 1 11 2
1 2 1 1
2 2 8 1
[code]

En dan moet jij aangeven wat je als lijstje hieruit wilt zien
Langzaam begin ik te beseffen dat wat ik wil waarschijnlijk niet op een pagina kan.

klaverjas.php
Spelers:
alle spelers die op de meest recente speeldag een score hebben.

Wedstijden:
De meest recente speeldag, liefst volgens format 10 september 2014.

scores:
op de meest recente speeldag behaalde punten en marsen.
gesorteerd van hoog nar laag op punten.

eventueel andere php-file?
ranking.php

spelers:
Alle spelers die een score hebben behaald in de lopende competitie

Wedsrijden:
niet van toepassing.

Scores:
Van alle spelers die een score hebben de totalen van zowel de punten als de marsen.
gesorteerd van hoog nar laag op punten.




SELECT spelers.speler, scores.punten, scores.marsen
FROM spelers
JOIN scores ON scores.spelerid = spelers.spelerid
WHERE scores.wedstrijdid = (SELECT wedstrijdid FROM wedstrijden ORDER BY datum DESC LIMIT 1)
Heel erg bedankt.

Ik ga ermee stoeien.
Als je iets ophaalt met b.v. sum kun je ook nog het volgende doen:


SELECT sum(scores.punten) as score FROM ........


Als ik me niet vergis kun je dan onderaan dit doen:

ORDER BY score DESC (of ASC)
Probleem opgelost iedereen enorm bedankt voor de hulp.

Reageren