English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Alle Kategorien

Hat jemand eine Antwort?

Ich habe eine Top100 Liste wo immer folgendes drin steht:
Platz / Username / Punkte

Diese Liste ist natürlich täglich in einer anderen Reihenfolge, da sich ja die entsprechenden Punktestände verändern.

Ich möchte nun diese Tabelle täglich kopieren und als csv-Datei in eine SQL-Datenbank importieren.

Soweit kein Problem.

Nun will ich aber eine Tabelle auswerfen lassen, in dem die Usernamen stehen und daneben die Punktestände der letzten 3 Tage.

Wie mach ich das?

2007-01-18 11:49:07 · 2 antworten · gefragt von Anonymous in Computer & Internet Programmierung & Design

2 antworten

Schritt 1: täglich die Punktestände in die SQL-Datenbank schreiben (hast Du ja offensichtlich schon)

Schritt 2: mit PHP die Punktestände der letzten drei Tage in je eine Variable einlesen (dürfte wohl auch kein Problem sein).

Schritt 3: mit der Funktion split() die drei Variableninhalte in Arrays zerlegen; das geht z.B. so:
$variable1 = split ( "," , $variable1 );
$variable2 = split ( "," , $variable2 );
$variable3 = split ( "," , $variable3 );
(der Variableninhalt wird an den Kommas zerlegt, das geht natürlich auch mit anderen Zeichen als Trenner; eventuell auch zuerst einen Durchlauf mit "\n", wenn die Daten mehrzeilig angelegt sind, danach musst Du dann aber daran denken, dass Du als weiteren Ausgangspunkt ein Array hast und das entsprechend mit einer Schleife behandeln musst!)

Schritt 4: nun kannst Du die Daten entsprechend auswerten (z.B. nach Namen sortieren, siehe Arrayfunktionen: http://www.php-center.de/de-html-manual/ref.array.html etc.) und anschließend ausgeben (wie genau das geht, hängt davon ab, wie Du die Daten in die csv-Dateien eingetragen hast. Wenn Du damit nicht weiter kommst, dann solltest Du so einen Datensatz mal posten, damit ich Dir helfen kann.)

-----
Ein geschickterer Weg kann es allerdings sein, die Datenstruktur (anstatt csv-Daten abzuspeichern) komplett in SQL abzubilden, weil Dir dann wesentlich komfortablere Möglichkeiten zur Auswertung zur Verfügung stehen, die Du nicht erst selbst mühsam programmieren musst...

2007-01-18 19:49:43 · answer #1 · answered by Claude Eckl 6 · 1 0

Hallo,
du bekommst ein u.U. Relationsproblem da du nicht sagst ob die Punkte der
Liste eine Summe aller Punkte ist oder nur die vom aktuellen Tag.
Im ersten Fall mußt du vor dem importieren in DB, die DB erst auslesen und
die Differenz zwischen Punkte_Liste und Punkte_DB bilden. Was du im 2. Fall nicht brauchst.
Deine DB braucht zumindest Username, Punkte und Datum, dann eine
DB-Abfrage die so (ungetested) aussieht:
SELECT Username SUM(Punkte) AS Punkte_3D WHERE Username="Username" AND Datum<=heute AND DATUM>=heute-3Tage;

das natürlich für jeden Usernamen was sich ja leicht in eine While-Schleife
auf eine Abfrage auf Usernamen machen lässt.

Al

2007-01-19 06:58:05 · answer #2 · answered by Al C 4 · 0 1

fedest.com, questions and answers