mysqli Select, Daten sortieren nach 2 Spalten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
ausgabe
auslese
baum
code
date
datum
ersten eintrages
folgendem problem
funktionieren
genommen eintrag
gleiche werte rekorde
ordern
problem
rekord
schleife
spalten
stehen
tabelle
uhrzeit
-
Hi,
ich stehe vor folgendem Problem, ich gebe eine Highscore aus, die über 2 Spalten sortiert werden soll.
Wenn 2 gleiche Werte/Rekorde vorhanden sind soll nach Timestamp sortiert werden, wer seinen Rekord also als erstes erzielt hat sollte oben stehen.
Es wird aus einer Tabelle in der alle Rekorde der Member stehen der beste ausgewählt, aktuell sieht meine Abfrage dazu wie folgt aus:
// Rekorde auslesen alle user in den logs $userdaten_scorre = $mysqli->query(" SELECT max(baum) as rek_neu, name, timestamp, id FROM `event_xmass_log` GROUP BY `name` ORDER BY `rek_neu` DESC, `timestamp` ASC LIMIT 0 , 10 ");
Es wird auch bis auf den Timestamp richtig sortiert. In der Ausgabe er halte ich den höchsten Rekord, allerdings mit dem falschen Timestamp. Es soll ja der Timestamp genommen werden von dem Rekord. Es wird aber der Timestamp des ersten Eintrages genommen. (Eintrag des Users) Ich hoffe mal kann mein Problem verstehen.
LG Marco
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
dein Code sollte so wie er ist funktionieren, ich weiß es zwar nicht genau, aber es kann durchaus sein, das timestamp ein reserviertes Wort in mysql ist. Versuche es doch mal mit einem anderen Spaltennamen.
MFG Micha -
Hi,
das ist es leider nicht. Hab die Spalte mal umbenannt und alles angepasst, bleibt dabei das er als Zeit dann die erste die er vom Benutzer findet anzeigt.
Hier mal noch die Ausgabe dazu:
while($daten = $userdaten_scorre->fetch_object() ){ // Prüfen ob der Rekord gleichgroß dem letzten ist if ($point_last == $daten->rek_neu){ // Der Rekord hat die gleiche Höhe wie der letzte, der Platz wird nicht Hochgezählt }else{ // Platzzähler um 1 erhöhen $i++; } $datum = date('d.m.Y',$daten->logtime); $uhrzeit = date('H:i:s',$daten->logtime); // Ausgabe der Daten echo " <tr> <td>$i</td> <td>$daten->name</td> <td>$daten->rek_neu</td> <td>$datum $uhrzeit </td> </tr> "; // Rekord zwischenspeichern um zu prüfen ob der nächste Rekord die gleiche Höhe hat. $point_last = $daten->rek_neu; }// Schleife schließen
Das sind die betroffenen Ausgaben.
$datum = date('d.m.Y',$daten->logtime); $uhrzeit = date('H:i:s',$daten->logtime);
-
Hallo aff3m1tw4ff3,
besteht dein Problem immer noch?
Bin mir jetzt nicht sicher, ob ich es richtig verstanden habe: Machst du evtl. doch eine Abfrage über 2 Tabellen? Falls ja, hast du schon versucht, bei "timestamp" den Tabellennamen explizit anzugeben, also anstatt nur
gibst dutimestamp
an. Oder habe ich dein Problem doch falsch aufgefasst?event_xmass_log.timestamp
Gruss
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage