CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
10.01.2007, 10:30:08
|
|
Anfänger
|
|
Registriert seit: Aug 2004
Ort: Abtenau - Austria
Alter: 36
Beiträge: 85
|
|
[GELÖST] Problem mit Highscore auslesen
Hallo!
Ich hab folgendes Problem:
Ich habe eine Highscore-Tabelle für ein Arcade-Games-Script, mit folgenden Spalten:game, username, score, gameid
Jetzt brauch ich von jedem Game nur den jeweils höchsten Score, in dieser Tabelle sind aber alle Scores gespeichert.
Wenn möglich, will ich das nur durch die richtige SQL-Abfrage erzielen, da ich sonst das Script selbst auch noch umschreiben muss.
Zur Zeit läufts so ab:
PHP-Code:
$wingamer = $db->query("SELECT * FROM bb".$n."_arcade_session_aktiv ORDER BY zeit DESC");
$si=0;$sx=0;
while($row = $db->fetch_array($wingamer)) {
if($sx==0){
$highscoreuser = array();
$highscoreuser[0] = $row['game'];
$highscoreuser[1] = $row['username'];
$highscoreuser[2] = $row['score'];
$highscoreuser[3] = $row['gameid'];
}
if($row['userid']==$wbbuser){
$winthumb="";
$winthumb=$win_a_thumb[$row[gameid]];
$gamehits_bit.=" <a href='arcade_gold_light.php?action=playgame&gameid=$row[gameid]#sa'><img src='$config[imageurl]$winthumb' width='20' height='20' border='0' alt='{$lang->items['LANG_ARCADEG_HEADHIGH']} $row[score] {$lang->items['LANG_ARCADEG_PUNKTEN']}' /></a>";
$gamehits_bit.=" <span class='smallfont'>$row[name]</span>";
$si++;
}
$sx++;
}
In der session_aktiv-Tabelle stehen alle ersten Plätze.
Da es aber Probleme mit den Sessions gibt bzw ich dieses Feature gar nicht brauche, muss ich aus der Tabelle auslesen, wo ALLE scores drin stehen.
Danke schon mal für Hilfe!
mfg, Bogi
Geändert von Bogi (10.01.2007 um 13:45:54 Uhr)
|
10.01.2007, 12:18:09
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Problem mit Highscore auslesen
Code:
SELECT gamename, max(score) FROM TABELLE
|
10.01.2007, 12:26:06
|
|
Anfänger
|
|
Registriert seit: Aug 2004
Ort: Abtenau - Austria
Alter: 36
Beiträge: 85
|
|
AW: Problem mit Highscore auslesen
danke für die antwort ...
so funktionierts leider nicht hab ich auch schon probiert.
Erstmal benötigt max() GROUP BY und egal, nach welcher spalte ich es gruppiere, es wird leider nie das richtige ausgegeben
|
10.01.2007, 12:27:20
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Problem mit Highscore auslesen
Stimmt, das group by hab ich vergessen..
Code:
SELECT gamename, max(score) FROM TABELLE GROUP BY gamename
Aber ohne deine Tabellenstruktur zu kennen kann man nur im trüben stochern..
|
10.01.2007, 12:39:44
|
|
Anfänger
|
|
Registriert seit: Aug 2004
Ort: Abtenau - Austria
Alter: 36
Beiträge: 85
|
|
AW: Problem mit Highscore auslesen
hmmm,leider funktionierts so nicht ...
Also, die Tabelle hat folgende Spalten:
scoreid, gameid, game, date, time, userid, username, score, comment
wobei gameid, game, userid, username und score relevant sind und nach time sortiert werden soll.
Es stehen in der Tabelle alle Scores aller user drin ...
z.b. (siehe Anhang)
Daraus wird ersichtlich, dass der Eintrag mit der scoreid 1 den besten Score hat, alle anderen Einträge mit der gleichen GameID sollen nun ignoriert werden.
mfg
|
10.01.2007, 12:53:51
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Problem mit Highscore auslesen
MySQL-Version?
Das hier mal probieren, sollte dir erstmal alle maximalen Scores pro Game liefern
Code:
select gameid, max(score)max_score from tabelle group by gameid
Den Rest zum Score auslesen (geht imo nur über subquery):
Code:
select tabelle.gameid, tabelle.game, tabelle.userid, tabelle.username, tabelle.score
from
tabelle,
( select gameid, max(score)max_score from tabelle group by gameid ) max_scores
where
tabelle.gameid=max_scores.gameid
and tabelle.max_score = max_scored.max_score
order by
tabelle.date,
tabelle.time
Geändert von BenniG. (10.01.2007 um 12:54:16 Uhr)
|
10.01.2007, 13:07:58
|
|
Anfänger
|
|
Registriert seit: Aug 2004
Ort: Abtenau - Austria
Alter: 36
Beiträge: 85
|
|
AW: Problem mit Highscore auslesen
Vielen Dank!
Doch ich hab Probleme mit dem Einbinden.
Könntest du mir das ganze Erklären, komm damit nicht so ganz zurecht ;)
mfg
edit:
Falls ich alles richtig angepasst hab, kommt lediglich dieser fehler:
mysql error: Unknown column 'bb1_arcade.max_score' in 'where clause'
edit2:
so siehts jetzt bei mir aus:
Zitat:
$wingamer = $db->query("
select bb".$n."_arcade.gameid, bb".$n."_arcade.game, bb".$n."_arcade.userid, bb".$n."_arcade.username, bb".$n."_arcade.score
from
bb".$n."_arcade,
(select gameid, max(score)max_score from bb".$n."_arcade group by gameid ) max_scores
where
bb".$n."_arcade.gameid=max_scores.gameid
and bb".$n."_arcade.max_score = max_scores.max_score
order by
bb".$n."_arcade.date,
bb".$n."_arcade.time
");
|
Geändert von Bogi (10.01.2007 um 13:18:52 Uhr)
Grund: noch was vergessen
|
10.01.2007, 13:42:19
|
Member
|
|
Registriert seit: Oct 2006
Beiträge: 610
|
|
AW: Problem mit Highscore auslesen
Versuchs mal so:
PHP-Code:
$wingamer = $db->query(" select score.gameid, score.game, score.userid, score.username, score.score from bb".$n."_arcade score, (select gameid, max(score)max_score from bb".$n."_arcade group by gameid ) max_scores where score.gameid=max_scores.gameid and score.score = max_scores.max_score order by score.date, score.time ");
Geht aber erst ab MySQL >=4.1
|
10.01.2007, 13:45:27
|
|
Anfänger
|
|
Registriert seit: Aug 2004
Ort: Abtenau - Austria
Alter: 36
Beiträge: 85
|
|
AW: Problem mit Highscore auslesen
danke, habs grad selbst rausgefunden ;)
PHP-Code:
and bb".$n."_arcade.score = max_scores.max_score
hab aber jetzt trotzdem deine upgedatete Version verwendet, da die um einiges schöner is ;)
Also, herzlichen Dank für die Hilfe :)
mfg
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Hybrid-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:08:21 Uhr.
|