php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.03.2006, 09:53  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard [gelöst] Position des Datensatzes

Hallo,

ich habe eine kleine Hiscore-Liste bei einem Spiel.
Jetzt wird z.B. ein Spieler eingetragen mit 1543 Punkten.

Wenn ich mir die Liste ansehe (über SELECT name,punkte FROM hiscore ORDER BY punkte DESC), dann sehe ich das die Person auf Platz 24 steht.

Aber gleichzeitig würde ich gerne eine Meldung ausgeben die dem Spieler sagt, "Sie haben Platz 24 erreicht". Und das sollte schon dastehen BEVOR er in die Liste eingetragen wurde.

Und dort beginnt mein Problem. Die einzige Möglichkeit die ich finde ich, die Liste über den oben geschriebenen Befehl durchzugehen und nebenbei einen Counter durchlaufen zu lassen. Und wenn der Datensatz gefunden wurde, dann habe ich den Platz.

Da diese Hiscore aber die Besten 10.000 speichern soll finde ich diese Möglichkeit nicht gerade Geschwindigkeitsfreundlich.

Wie könnte mein Weg aussehen um die Position des Spielers abzufragen. Ich habe schon einen JOIN LEFT versucht, allerdings komtm da nichts sinnvolles bei raus, weil ich wieder die ganze Liste durchgehen müsste.

Brauche Hilfe.

Der Aufbau der Tabelle ist ganz schlicht gehalten:
ident | name | punkte

und als Variablen in meinem Script habe ich
$_POST["name"] und $_POST["punkte"].
Die Felder kommen über Flash rein und werden natürlich auf gültigkeit und versuchter Manipulation geprüft

Ich suche wie immer keine Komplettlösung, bei mir zählt immer der Weg ist das Ziel, aber leider stehe ich vor einem Schilderwald und finde nicht mal einen Trampelpfad!

Danke,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.03.2006, 10:14  
Neuer Benutzer
 
Registriert seit: 10.03.2006
Beiträge: 26
ninguno
Standard

so?
Code:
select  count(*) from hiscore where punkte > 123
wobei 123 durch die aktuelle Punktezahl ersetzt werden muss;
ninguno ist offline   Mit Zitat antworten
Alt 13.03.2006, 11:15  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Super, geht!
Code:
SELECT COUNT(*) FROM hiscore WHERE punkte>'$_POST[punkte]' ORDER BY punkte DESC LIMIT 1;
Danke schön!
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 13.03.2006, 11:20  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Ergänzung:
Wenn der Platz vor dem Eintragen errechnet wird muß man noch +1 machen.

Sobald Eingetragen wurde und man den Platz finden möchte muß die WHERE-Clause in punkte>='$_POST[punkte]' geändert werden.

Gruß,
Stefan
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Alt 13.03.2006, 11:30  
Neuer Benutzer
 
Registriert seit: 10.03.2006
Beiträge: 26
ninguno
Standard

ich schätz mal das ORDER BY punkte DESC LIMIT 1 kannst du weglassen, da die query sowies nur eine row zurückgibt
ninguno ist offline   Mit Zitat antworten
Alt 13.03.2006, 12:03  
Erfahrener Benutzer
 
Benutzerbild von stefanjann
 
Registriert seit: 02.08.2005
Beiträge: 252
PHP-Kenntnisse:
Fortgeschritten
stefanjann
Standard

Stimmt. Die Sortierung braucht nur unnötig speed.
Aber wenn ich mich nicht irre, sollte das LIMIT 1 dabei stehen, da MySQL dann sofort weiß, nach dem einen Satz ist Schluß, was eher die REs wieder frei gibt.
Danke!
__________________
SELECT * benutze ich nur um den Post kurz zu halten.
stefanjann ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CSS: Style ohne position? SilentSight HTML, Usability und Barrierefreiheit 5 25.07.2008 16:12
Position einer zeile in einer sortierten tabelle bestimmen Drache Datenbanken 9 17.06.2007 10:45
Mauszeiger Position (ohne Event) cowabunga1984 HTML, Usability und Barrierefreiheit 4 04.04.2007 12:01
Die Position ein. Datensätzes aus einer Datenliste ermitteln Locutus007 Datenbanken 8 07.03.2006 16:59
Position eines Strings rausfinden, der mehrmals vorkommt PHP Tipps 2006 5 12.02.2006 19:20
mit position nachruecken imported_kremser Datenbanken 2 08.02.2006 21:50
Problem mit DIV -Bild soll am unteren Ende der Seite bleiben scheibo HTML, Usability und Barrierefreiheit 16 12.01.2006 16:54
Position abfragen Datenbanken 5 29.09.2005 16:31
position eines event-handlers HTML, Usability und Barrierefreiheit 0 03.07.2005 14:31
position einer abfrage Datenbanken 7 14.06.2005 20:48
Scrollbar Position auslesen und an Link übergeben... Plague PHP Tipps 2005 6 17.05.2005 16:40
Link zum löschen eines Datensatzes automatisch generieren PHP Tipps 2005 2 27.04.2005 19:38
Position in der Datenbank. PHP-Fortgeschrittene 2 21.11.2004 16:10
Position relative oder absolute Stümper HTML, Usability und Barrierefreiheit 3 12.09.2004 11:56
Position eines Datensatzes in einem QUERY abfragen Datenbanken 12 27.07.2004 10:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php position des datensatzes, mysql position eines datensatzes

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.