rekenen met tabellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Php knipper

php knipper

15/12/2011 19:05:33
Quote Anchor link
ik ben op dit moment bezig met een scoresysteem dat werkt met een database

gebruikers
-naam
-foto
-punten
-id

punten
-aantal_punten
-id_gebruiker

u is mijn vraag
de tabel punten daar staan bij aantal punten bijvoorbeeld "30" in de volgende waar het id hetzelfde is staat bijvoorbeeld "500". hoe kan ik er voor zorgen dat hij die 2 optelt. zodat ik dat totaal in de tabel gebruikers in "punten" kan steken.

Alvast bedankt
groeten knipper
 
PHP hulp

PHP hulp

25/12/2024 15:33:48
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

15/12/2011 19:12:32
Quote Anchor link
Op de manier waarop jij het zegt heb je de kolom punten niet nodig in de gebruikers tabel
 
Erwin H

Erwin H

15/12/2011 21:22:18
Quote Anchor link
Doe het met een join inderdaad en een sum functie op de punten tabel. Zoiets als dit:

SELECT gebruikers.id, gebruikers.naam, sum(punten.aantal_punten) AS totaal_punten
FROM gebruikers
LEFT JOIN punten ON gebruikers.id = punten.id_gebruiker
GROUP BY gebruikers.id

Uit mijn hoofd, zonder te testen, maar zou zo moeten werken.

Wat je in elk geval niet wilt, is het totaal van de punten ook in de gebruikers tabel opslaan. Dan moet je namelijk elke keer die tabel gaan updaten als er een record bijkomt in de punten tabel. Niet alleen overbodige acties op je database, ook nog eens een recept voor fouten en inconsistente data.
 
F Loogman

F Loogman

15/12/2011 22:18:14
Quote Anchor link
Plus dat je het select statement wilt laten voorafgaan door een "UPDATE gebruikers ..." statement zodat het resultaat van je SELECT ingevoerd wordt bij je gebruikers.

In MySQL krijg je iets als;

UPDATE gebruiker, (
SELECT gebruiker.id, SUM(punten.punten) AS totaal_punten
FROM gebruiker JOIN punten ON gebruiker.id = punten.gid
GROUP BY gebruiker.id
) AS extra_punten SET gebruiker.totaal = gebruiker.`totaal` + extra_punten.totaal_punten
WHERE gebruiker.id = extra_punten.id

waarna je de punten tabel als de bliksem moet legen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.