Nächst höheren MySQL - Eintrag ausgeben und auswerten!

Boostergermany

Erfahrenes Mitglied
Sodala...ich bereite mir ja gerade etwas arbeit mit einem kleinem Game...jetzt will ich aber nicht dass die Leute eine Statistik haben auf der sie sehen können, aha...der ist Platz 1 usw...sondern ich will nur dass jeder User für sich angezeigt bekommt, wie viel Punkte er braucht um einen Platz aufzusteigen!

Nun ist meine Frage dazu, wie soll ich die Abfrage gestalten um ein solches Vorhaben umzusetzen, ich will also Praktisch dass erst abgefragt wird wie viel Punkte der eingeloggte User hat, Beispiel jetzt mal 10 stück, dann soll der nächst höhere Wert ermittelt und angezeigt werden ...beispielsweise jetz mal UserX mit 12 Punkte....und dann bekommt der eingeloggte User die Meldung: "Ihnen fehlen 2 Punkte um einen Platz aufzusteigen!"...

ist soetwas möglich...?

PS. mein wissen umgibt nur PHP und MySQL, das heißt mit JavaScript usw...würd ich es shcon gerne auch realisieren wenn nötig, aber da kann ich gar nicht...und Fachchinesisch versteh ich bei PHP auch nicht immer...kann mir da jemand helfen?


MfG und danke für jeden der sich die mühe macht mir zu helfen !
 
Vielleicht gibt es auch bessere Ansätze dafür, aber so sieht meine Lösung aus.
Tabelle highscore (id, memberid, score)
41 ist nur ein Testwert, da gehört die ID des Users hin.
SQL:
SELECT t2.score-t1.score AS diff FROM highscore AS t1, highscore AS t2
WHERE t1.memberid=41 AND t1.score<t2.score ORDER BY t1.score ASC, t2.score ASC LIMIT 1
 
mhm kannst du mir das eventuell mal erklären, weil mit dem was du da angegeben hast, kann ich so noch nichts anfangen...ich würde gerne verstehen wie das funktioniert...ich dachte eigentlich dass des ganze über die user tabelle möglich ist, da sind ja alle user mit ihrem punktestand drinne...
 
Bitte versuche dich an die Groß- und Kleinschreibung zu halten, dass macht das Lesen deiner Beiträge viel einfacher.

Das geht natürlich auch über die Nutzertabelle, ich hatte nur in meiner Test-Datenbank zufällig eine highscore-Tabelle, die ich zum Testen des Queries benutzt habe.

Mein Query macht etwa folgendes (so kannst du es dir etwa vorstellen):
-Ich nehme zweimal die gleiche Tabelle
-Sortiere beide nach der Punktzahl aufsteigend
-Ich wähle aus der ersten Tabelle den Datensatz des gesuchten Users
-Danach wähle ich aus der anderen Tabelle alle Datensätze mit einer größeren Punktzahl als der ausgewählte
-Ich ziehe im Ergebnis die Punktzahl aus der ersten Tabelle von der aus der zweiten Tabelle ab und erhalte dadurch die Differenz
-Durch das LIMIT 1 bekomme ich nur den nächst größeren Wert

Hier nochmal die gleiche Abfrage nur mit einer User-Tabelle
SQL:
SELECT t2.punktzahl-t1.punktzahl AS differenz FROM mitglieder AS t1, mitglieder AS t2
WHERE t1.id=41 AND t1.punktzahl<t2.punktzahl ORDER BY t1.punktzahl ASC, t2.punktzahl ASC LIMIT 1
 
Jah genau so, habs noch nich ausprobiert aber genau das ist der Gedanke den ich gebraucht habe, danke für deine hilfe!

So werde ich das umsetzen, ich danke und wünsche einen schönen Tag ^^
 

Neue Beiträge

Zurück