PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL - Ergebnis-modifikation


Darelius
16.10.2009, 23:22:38
Hallo, ich habe eine Frage, vermutlich lacht ihr darüber aber ich finde gerade keine Lösung für mein Problem.

Um das Problem zu umschreiben, muss ich etwas ausholen..

Es geht um eine "TopTen"-Liste, die normalen FopTen-Funktionen sind bereits drinnen und kein Problem.

Es wird die Tabelle mit den Spielerdaten gelesen und beim lesen nach dem Wert sortiert und ein entsprechendes Limit auch nur eingelesen.

Nun soll eine neue Sparte drinnen sein, aber folgendes Problem:
Die Punktzahl hier ist in einer anderen Tabelle, wo man die Werte erst zusammenrechnen muss.

Also Spieler-ID,Monster-ID,Punkte und da müssen dann pro Spieler alle Punkte zusammengerechnet werden.

Ich dachte mir, daß ich, sofern ich danach sortiere, einfach "alle" spieler einlese, die mysql-abfrage um diesen "Wert" erweitere, sortiere und auf die entsprechende Anzahl kürze.

Leider verlängert das die Anfage auf die Datenbank natürlich, allerdings darf ich die Datenbankstrukturen nicht verändern.

Nun meine Frage:
Wie modifiziere ich eine "$result = mysql_query($sql,$con);" - Abfrage?
In der Tabelle habe ich ja diverse Einträge, es soll eine neue Spalte "Raidscore" dazukommen und pro Spieler-ID dort ein wert (der aus der anderen DB errechnet wird) dazukommen.

Ist das überhaupt machbar?

Meine Alternative wäre, daß ich die zweite Punkteliste auslese, auswerte und sortiere, dann entsprechend der maximal dargestellten Anzahl beschneide und anhand der überig gebliebenen Spieler-IDs die "restlichen" Spielerdaten auslese, was aber nicht gerade wenig umständlich wäre (wenn auch sicher Datenbankschonender)

Was würdet ihr empfehlen?


...DX

Indyk
26.10.2009, 14:20:10
Hallo Darelius,

ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe da deine Beschreibung doch etwas wirr für ausenstehende scheint. (nichts für ungut ; )

Was verstehst du unter modifizieren einer result abfrage?

Mir scheint das du einfach nur den Query anpassen musst.

hier ein kleines beispiel welches dir evtl. hilft


SELECT
SUM(m.punkte)
FROM
user u
JOIN
kills k ON u.id = k.id_user
JOIN
monster m ON m.id = k.id_monster
GROUP BY
user.id


Bei dem beispiel wird von 3 tabellen ausgegangen, eine user tabelle, eine tabelle in der steht welcher user welche monster getötet hat und eine dritte in der die monster stehen und deren punkte.

Wenn dir die SQL Funktionen SUM und GROUP BY nichts sagen, rate ich dir zu einem SQL-Tutorial