WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP - Punktestand (http://www.wcm.at/forum/showthread.php?t=146468)

Robin Hood 03.10.2004 12:28

PHP - Punktestand
 
Ich hab folgendes Problem:

Ich habe eine Tabelle in der mehrere Werte Zahlen gespeichert werden.
Diese Zahlen werden zusammengezählt und als Punkte angezeigt.

sieht etwa so aus:
+-----------------+--------------+-----------------+--------------+
| Zahl1 | Zahl2 | Zahl3 | Username |
+-----------------+--------------+-----------------+--------------+
| 11 | 37 | 28 | xyz |
+-----------------+--------------+-----------------+--------------+
| 37 | 37 | 28 | usx |
+-----------------+--------------+-----------------+--------------+

Jetzt soll angegeben werden Welcher der Beiden mehr Punkte hat:

usx: 102
xyz: 76

Soweit so gut, nur mein Problem ist, dass der User auch 2 Datensätze haben kann:

+-----------------+--------------+-----------------+--------------+
| Zahl1 | Zahl2 | Zahl3 | Username |
+-----------------+--------------+-----------------+--------------+
| 11 | 37 | 28 | xyz |
+-----------------+--------------+-----------------+--------------+
| 37 | 37 | 28 | usx |
+-----------------+--------------+-----------------+--------------+
| 11 | 14 | 26 | xyz |
+-----------------+--------------+-----------------+--------------+

also sollte das Ranking dann so aussehen:

xyz: 127
usx: 102

Jetzt gäbe es natürlich die Möglichkeit eine eigene Tabelle mit Punkten anzulegen, die immer aktualisiert wird, ich wollte euch aber fragen ob das nicht einfacher geht?

Seppo 03.10.2004 14:10

ähmm.. wie genau selektierst du ?

wenn du zu jedem usernamen einen eigenen select machst würds ja kein problem sein oder ?

oder selektierst du mit einem großen select alle usernamen auf einmal ?

snowman 03.10.2004 18:26

Code:

GROUP BY Username
gruss,
snowman

Robin Hood 05.10.2004 20:23

danke, aber so zeigt er zwar keinen datensatz mit dem selben Username 2x an aber er rechnet die Werte nicht zusammen, das ist eigentlich mein Problem!

sagi 06.10.2004 04:07

Zitat:

Original geschrieben von Robin Hood
danke, aber so zeigt er zwar keinen datensatz mit dem selben Username 2x an aber er rechnet die Werte nicht zusammen, das ist eigentlich mein Problem!
es wär mal interessant zu wissen, ob die Daten intern auf einer Rolle Klopapier gespeichert werden, in einer Textdatei oder gar in einer Datenbank (welche?).

Robin Hood 06.10.2004 08:08

sry ich dachte mit "Tabelle" wäre es klar, dass die Werte in eine Datenbank gespeichert werden.
Datenbank: mysql

kju 06.10.2004 10:01

es wär sinnvoller die werte schon beim updaten immer zusammen zu zählen
Code:

UPDATE ... SET Zahl1 = Zahl1+22, ... WHERE Username ...
weil sonst check ich nicht ganz wie du mit deinen primärschlüsseln tust, falls das scho die ganze tabelle war...
wennst noch irgendwo einen autoincrement wert als id hast dann gehts nat. auch mit GROUP BY Username

bev 06.10.2004 10:24

hi,

probier mal folgenden query

SELECT
(sum(zahl1) + sum(zahl2) + sum(zahl3)) AS zahl,
username
FROM
!!TABELLE!!
GROUP BY username


sollte funken,

gruß
bev

Robin Hood 06.10.2004 18:21

Danke funktioniert perfekt!!!


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag