Hallo,
ich habe ein Gewinnspiel gebastelt, bei dem die SQL Tabelle u.a. wie folgt aufgebaut ist:
datum - user_richtig
Nun wird bei richtiger Antwort, die UserID in die Zelle eingetragen, die dem Datum entspricht.
1 - |123||456||789|
2 - |123||456||789|
3 - |123|
4 - |789|
...
24 - |456||789|
Die Punkte die der User erreicht ergeben sich aus dem Datum. Sprich - Datum 1, Frage richtig beantwortet = 1 Punkt - Datum 24, Frage richtig beantwortet = 24 Punkte. Nun möchte ich die Punkte der einzelnen User addieren und in einer Rangliste ausgeben. Sprich das Array sortieren und im Anschluß sortieren.
Zu meinem Ansatz:
Wenn ich mir das richtig überlegt habe, müsste ich zuerst 24 einzelne Abfragen machen, wo ich die einzelnen userIDs, zu dem entsprechendem Datum holen:
Nun habe ich alle UserIDs getrennt vom jeweiligem Datum, wo sich allerdings ein weiteres Problem verbirgt. Denn die UserIDs werden in dem Format |userID| eingetragen und nicht ||userID. Dies benötige ich, damit ich bei einer Abfrage der userID entsprechend mit % arbeiten kann. Also in der Abfrage %|userID|% um einen Treffer zu erzielen. Aber bei dem explode trennt er ja bei ||, was jedoch beim ersten und letztem Inhalt des Arrays nicht zutrifft.
Wie kann ich diese beiden Probleme lösen?
LG
ich habe ein Gewinnspiel gebastelt, bei dem die SQL Tabelle u.a. wie folgt aufgebaut ist:
datum - user_richtig
Nun wird bei richtiger Antwort, die UserID in die Zelle eingetragen, die dem Datum entspricht.
1 - |123||456||789|
2 - |123||456||789|
3 - |123|
4 - |789|
...
24 - |456||789|
Die Punkte die der User erreicht ergeben sich aus dem Datum. Sprich - Datum 1, Frage richtig beantwortet = 1 Punkt - Datum 24, Frage richtig beantwortet = 24 Punkte. Nun möchte ich die Punkte der einzelnen User addieren und in einer Rangliste ausgeben. Sprich das Array sortieren und im Anschluß sortieren.
Zu meinem Ansatz:
Wenn ich mir das richtig überlegt habe, müsste ich zuerst 24 einzelne Abfragen machen, wo ich die einzelnen userIDs, zu dem entsprechendem Datum holen:
PHP:
//abfrage
$ranking_sql = mysql_fetch_array(safe_query("SELECT user_richtig FROM `".PREFIX."quiz` WHERE nummer='".$datum."'"));
//userIDs trennen
$ranking_user = explode("||", $ranking_sql['user_richtig']);
Nun habe ich alle UserIDs getrennt vom jeweiligem Datum, wo sich allerdings ein weiteres Problem verbirgt. Denn die UserIDs werden in dem Format |userID| eingetragen und nicht ||userID. Dies benötige ich, damit ich bei einer Abfrage der userID entsprechend mit % arbeiten kann. Also in der Abfrage %|userID|% um einen Treffer zu erzielen. Aber bei dem explode trennt er ja bei ||, was jedoch beim ersten und letztem Inhalt des Arrays nicht zutrifft.
Wie kann ich diese beiden Probleme lösen?
LG
Zuletzt bearbeitet: