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 11: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 13: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 17:26

Code:

GROUP BY Username
gruss,
snowman

Robin Hood 05.10.2004 19: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 03: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 07:08

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

kju 06.10.2004 09: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 09: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 17:21

Danke funktioniert perfekt!!!


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:56 Uhr.

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