Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[intern] Wettbewerbsauswertung - Ideen - IRC Log
#1
21:37 <@loose> das mit der wettbewerbsauswertung per formular sollte man sich echt mal durch den kopf gehen lassen. per hand ist das echt nervig...
21:37 <@loose> hab jetzt 2x2, 3x3, und OH fertig. den rest mach ich auf jeden fall morgen.
21:38 <@loose> hast du dich schon durch die rekordliste gekämpft?
22:10 <@Afrobongo> re
22:10 <@Afrobongo> ne
22:10 <@Afrobongo> hab noch nichts gemacht :-/
22:11 <@Afrobongo> ich hab auch noch nich wirklcih ne ahnung wie ich an die sache rangehn muss -.-
22:11 <@loose> bei den rekorden ist es etwas koplizierter
22:12 <@Afrobongo> mehr gesuche
22:13 <@loose> ich werd am wochenende mal schauen, ob man das irgendwie mit php und sql machen kann
22:14 <@Afrobongo> das wär ausgezeichnet
22:14 <@Afrobongo> ich dachte schon an sowas wie access
22:14 <@Afrobongo> aber sql wär ja das gleiche
22:14 <@Afrobongo> bzw besser ^^
22:14 <@Afrobongo> also datenbanken kann ich noch reichlich anlegen, daran solls nicht liegen
22:14 <@loose> kennst du dich mit php und/oder sql aus?
22:14 <@Afrobongo> sql berufsbedingt
22:15 <@Afrobongo> php kann ich zwar reparieren, aber nicht schreiben
22:15 <@Afrobongo> ich kann so ziemlich jede sprache reparieren
22:15 <@Afrobongo> ^^
22:15 <@loose> ich hab mir mal mit php ein testformular zusammengezimmert
22:16 <@loose> allerdings hab ich das in ner einfachen datei gespeichert
22:16 <@Afrobongo> wo ist das problem?
22:16 <@loose> php kann nicht so gut mit dateien umgehen
22:17 <@Afrobongo> ist halt ne rotzsprache für webserver
22:17 <@loose> ich wüsste nicht wie man effizient die daten sortiert, bzw einzelne datesätze ändert etc.
22:17 <@Afrobongo> hm
22:17 <@Afrobongo> das müssten wir schon können
22:18 <@Afrobongo> falls sowas wie doppelteilnahmen oder sowas dabeisind
22:18 <@loose> mit sql ist das ja recht simpel
22:18 <@Afrobongo> oder bluedice der sich selbst disqualifiziert
22:18 <@Afrobongo> ja aber da kann man sicher mehr draus machen
22:18 <@Afrobongo> leo kann das glaub cih gar nich ^^
22:18 <@loose> er wollte php im urlaub lernen ^^
22:18 <@Afrobongo> achso :D
22:18 <@Afrobongo> man könnte noch solix mit einbeziehn
22:19 <@loose> http://loose.lo.funpic.de/test/ da findest du mein seehhr simples formular
22:19 <@Afrobongo> der hat diesen quatsch drauf
22:19 <@Afrobongo> und was passiert auf knopfdruck?
22:19 <@loose> die daten werden als csv in http://loose.lo.funpic.de/test/wettbewerb.csv gespeichert
22:20 <@Afrobongo> das wär doch schon ziemlich gut
22:20 <@loose> die datei kann man dann bequem mit openoffice oder excel bearbeiten
22:20 <@Afrobongo> jau das wär doch schon geil
22:20 <@Afrobongo> kannst du das so machen, dass single und avg in getrennten dateien landen?
22:21 <@loose> klar, das ist kein problem
22:21 <@Afrobongo> wir müssten echt die ranglisten dann aus ner datenbank ziehn
22:21 <@Afrobongo> automatisch
22:21 <@Afrobongo> ich glaub das muss irgendwie drin sein
22:21 <@Afrobongo> ich könnt die ganzen sqlsachen easy selber machen
22:22 <@Afrobongo> nur das ganze auf eine oberfläche packen bzw die daten in die datenbank bekommen kann ich nich
22:22 <@Afrobongo> omg
22:22 <@Afrobongo> mein kopf platz grad vor ideen ^^
22:22 <@loose> ich wäre auch für sql. das ganze mit dateien zu machen wäre zu kompliziert
22:22 <@loose> ^^
22:22 <@Afrobongo> ich versuch das ma zusammen zu fassen
22:23 <@Afrobongo> die user packen ihre daten über son formular in eine csv
22:23 <@Afrobongo> diese csv wird von uns kontrolliert
22:23 <@Afrobongo> und dann über eine andere minianwendung von uns in eine datenbank importiert
22:23 <@Afrobongo> ich weiß nich ob phpmyadmin das kann. ich hab zugang dazu auf dem webspace
22:24 <@loose> schöner wärs natürlich, wenn man das manuelle kontrollieren beiseite lassen könnte
22:24 <@Afrobongo> und dann müsste man noch eine anwendung auf die mainpage bringen, in der lage ist die daten aus der db dort angemessen auszulesen und zu präsentieren
22:24 <@Afrobongo> das klappt nich
22:24 <@Afrobongo> man müsste noch nen login basteln
22:25 <@Afrobongo> damit nich tausend daten dadrin landen
22:25 <@loose> allerdings kann auch jeder einen beliebigen namen angeben. wir müssten mal schauen, ob wir mit der sessionID an den namen kommen
22:26 <@Afrobongo> ich hätte eventuell dran gedacht, dass man rausfindet, wie man an die userdb vom board kommt
22:26 <@Afrobongo> dann brauch man das pw vom user
22:26 <@Afrobongo> das muss ja zu machen sein
22:27 <@loose> hört sich gut an
22:27 <@loose> die pws werden ja wahrscheinlich als md5-hash o.ä. gespeichert
22:27 <@Afrobongo> ja irgendwie so muss es ja sein
22:27 <@Afrobongo> das board ist open source
22:28 <@Afrobongo> demnach kann man vllt die routine die man zum anmelden benutzt kopieren und auskoppeln
22:29 <@loose> ich glaube es ist einfacher, einfach zu schauen, ob benutzername und passwort richtig sind. bei ner anmeldung wird ja noch ne session angelegt, cookies gespeichert etc..
22:30 <@Afrobongo> richtig
22:30 <@Afrobongo> das wär übertrieben
22:30 <@loose> ich installier mir die boardsoftware am WE einfach mal auf meinem webspace und bastel daran rum
22:30 <@Afrobongo> ach mist :D
22:30 <@Afrobongo> mybb und joomla funktioniert nich so schön zusammen
22:30 <@Afrobongo> ich hab das mal mit joomla und phpbb getestet
22:31 <@Afrobongo> da gibts ne bridge, die alle user synchronisiert
22:31 <@loose> was heißt "nicht schön" ?
22:31 <@Afrobongo> das is voll porno
22:31 <@Afrobongo> dann kann man jedem die möglichkeit geben in einen loginbereich der page zu kommen
22:31 <@Afrobongo> aber es hat keiner die schlechten bridgingversuche zuende programmiert
22:31 <@Afrobongo> die funktionieren einfach nich
22:32 <@loose> wir können doch joomla umgehen, indem wir das formular direkt in die boardsoftware integrieren
22:32 <@Afrobongo> ja das geht
22:32 <@loose> da müsste man sich nur "ein wenig" einarbeiten
22:32 <@Afrobongo> man kanns auch einfach auf den webspace legen und dann mit einem joomla-wrapping-tool in den content verlinken
22:32 <@Afrobongo> das geht easy
22:33 <@Afrobongo> das board kann ich mitlerweile in allen kleinigkeiten umbauen ^^
22:33 <@Afrobongo> da is ja fast nix mehr standard
22:33 <@Afrobongo> ich hab auch tierisch angst vorm nächsten "großen" update
22:33 <@loose> hehe
22:33 <@Afrobongo> das geilste wär echt vbb
22:34 <@Afrobongo> aber das is so teuer
22:34 <@loose> vbb?
22:34 <@Afrobongo> vbulletin board
22:34 <@Afrobongo> meiner meinung nach die beste software
22:34 <@Afrobongo> ganz kurz vor burning board
22:34 <@Afrobongo> das is auch hammer
22:34 <@Afrobongo> aber die kosten alle jährlich oder man bekommt keine updates
22:34 <+Trymon> verband bayrischer bienenzüchter
22:35 <@Afrobongo> Trymon was studierst du noch gleich? :D
22:35 <+Trymon> das falsche :P
22:35 <+Trymon> elektrotechnik
22:35 <+Trymon> wir haben dieses semester zwar auch programmiert
22:35 <@Afrobongo> :P
22:35 <@Afrobongo> das brauchen wir aber nicht, was?
22:35 <@Afrobongo> ^^
22:35 <+Trymon> aber das war c++ und ich hab immer noch keine ahnung :P
22:36 <@Afrobongo> :D
22:36 <@loose> Trymon kann ja an einer hardwarelösung arbeiten ^^
22:36 <+Trymon> lol
22:36 <@loose> mit flip-flops und operationsverstärkern
22:36 <@Afrobongo> jau
22:36 <@Afrobongo> das wär pure rechenleistung
22:36 <@Afrobongo> ^^
22:37 <@loose> ne kleine relais-turingmaschine :D die klicken so schön
22:37 <+Trymon> ich glaub da bin ich schneller fertig wenn ich mir webprogrammierung ansehe -.-
22:37 <@Afrobongo> ich denke auch
22:38 <+Trymon> ist schließlich auch ne software aufgabe
22:38 <+Trymon> datenverarbeitung und so
22:38 <@loose> ich freue mich schon auf string-verarbeitung mit php -.-
22:39 <@loose> vor allem bei zeiten über 60sec...
22:39 <+Trymon> Oo
22:39 <@Afrobongo> da baust einfach nen haufen abfragen ein
22:39 <@Afrobongo> oder eine
22:39 <@loose> das muss man ja irgendwie in ein einheitliches format bringen
22:39 <@Afrobongo> wenn der string nich so aussieht wie wir das wollen gibs ne fehlermeldung
22:39 <@loose> ^^
22:39 <@Afrobongo> daneben nen beispiel wie es zu machen ist
22:39 <@Afrobongo> ja so wird das gemacht
22:40 <@Afrobongo> dann gibs keine probleme
22:40 <@Afrobongo> wenn keine falshcen datensätze an dem formular vorbeikommen gibs auch keine probleme
22:40 <@loose> aber man könnte irgendwie versuchen sowas wie "1:23.45" in "86.45" zu konvertieren, damit sich das auch sortieren lässt
22:41 <@loose> vom prinzip her ist das ja nicht schwer
22:41 <@Afrobongo> jo
22:41 <@loose> aber mit php teilstrings zu ermitteln ist unschön
22:41 <@Afrobongo> ich stell dir alles was du brauchst ;)
22:41 <@loose> in perl würde man das mit einem einzigen regex machen ^^
22:43 <@loose> das ganze wird bestimmt aufwändiger als 10 wettbewerbe von hand auszuwerten :D
22:43 <@Afrobongo> das soll ja doch dann auch von dauer sein
22:43 <@Afrobongo> und wenn die teilnahme so weiterwächst...
22:43 <@Afrobongo> omg
22:44 <@Afrobongo> ich fang schon an wie radioactiveman
22:44 <@loose> so einen wettbewerb mit 50 teilnehmern auszuwerten ist bestimmt spaßig...
22:44 <@Afrobongo> ich glaube auch -.-
22:45 <@Afrobongo> je früher wir sowas anständig machen, desto besser wirds
22:45 <@loose> jo
22:46 <@loose> sollte das wachstum anhalten, brauchen wir auch sowas wie einen thread-mülleimer ^^
22:46 <@Afrobongo> du meinst ein thrash-forum?
22:46 <+Trymon> ich werd demnächst auch nen bissl bei den wettbewerben mitmischen :)
22:46 <+Trymon> nur schonmal als drohung vorweg genommen
22:47 <@Afrobongo> mach doch
22:47 <@Afrobongo> sind doch einige auch langsamere leute dabei
22:47 <+Trymon> jaja ich sag ja ich mach mit :P
22:48 <@loose> in ein paar wochen bist du auch bei 30 sec
22:48 <+Trymon> hmm
22:48 <+Trymon> mal sehen^^
22:48 <@Afrobongo> das geht schnell
22:49 <+Trymon> war heute bei 1:08 avg
22:49 <@Afrobongo> ging bei mir auch von jetzt auf gleich richtig fix
22:49 <+Trymon> hat mich nicht so begeistert
22:49 <+Trymon> loose: du wolltest doch wissen wie lang ich für LL brauche - durchschnittlich 20
22:50 <@Afrobongo> so
22:50 <@loose> hm, das ist noch recht viel
22:50 <@Afrobongo> ich denke ich mach ma schluß für heute
22:50 <@loose> machst du 4 look?
22:50 <@Afrobongo> loose kannst du das log ma im internen in einen extra thread schmiern?
22:50 <+Trymon> jop
22:50 <@Afrobongo> dann wissen wir was wir belabert haben
22:51 <@loose> kann ich machen
22:51 <@Afrobongo> supi
22:51 <@Afrobongo> gute nacht dann
22:51 <@loose> cd .irssi/logs/
22:51 <@loose> -.-
22:51 -!- Afrobongo [~nnscript@Afrobongo.users.quakenet.org] has quit [Quit: ( www.nnscript.com :: NoNameScript 4.22 :: www.esnation.com )]
#2
Fangen wir mal vorne an:

Postingformular
Name (Textfeld vllt kann man das über die Anmeldung regeln, das gibt dann weniger Probleme)
Disziplin (drop down box -> 2x2x2 - 5x5x5 + Sideevent als Möglichkeiten)
Zeit 1
Zeit 2
Zeit 3
Zeit 4
Zeit 5

Nach dem Posting errechnen am besten wir mit einer Methode den Schnitt und stecken es in die Datenbank.
Wo wir bei Thema 2 wären.
Die Datenbank
Wir brauchen folgende Tabellen:
User. Mit den Tabellenfelder:
User (Textfeld)
Teilgenommen (Flag. Setzen wir zu jedem neuen Wettbewerb zurück auf NEIN. Verhindert Doppelteilnahmen)

Disziplinen:
Disziplin (Textfeld) - Hier werden alle Disziplinen eingetragen

Kalenderwoche:
KW (Textfeld) - Hier werden die Kalenderwochen eingetragen. ZB KW 29+30

Wettbewerbe. Hier laufen alle Tabellen zusammen:
Kalenderwoche (wird aus der KW-Tabelle geholt)
User (wird aus der Usertabelle geholt)
Disziplin (-> Disziplintabelle)
Zeit1 (Wird durch das Formular befüllt)
Zeit2 (Wird durch das Formular befüllt)
Zeit3 (Wird durch das Formular befüllt)
Zeit4 (Wird durch das Formular befüllt)
Zeit5 (Wird durch das Formular befüllt)
AVG (Wird vom Formular errechnet und hier eingetragen)

-------------------------------------------------------
So würde ich jedenfalls die Tabelle aufbauen. Ich häng mal meinen miesen Access-Entwurf an. (Hatte grad kein besseres Tool dafür hier)
Ich weiß allerdings nicht, wie wir die Bestzeiten, also Rekorde machen. Ob es Sinn macht eine weitere Tabelle dafür anzulegen oder nicht. Immerhin stehen ja alle Daten bereits in der Wettbewerbstabelle... Aber das geht auch nich so richtig. Vllt sollte man die Rekorde in der Usertabelle speichern.
Das Auslesen und als Rangliste zur Verfügungstellen machen wir später noch. Soweit sind wir ja noch nicht.
Weitere Ideen?


Angehängte Dateien
.zip   Datenbank1.zip (Größe: 23,75 KB / Downloads: 25)
#3
Warum willst du das denn mit so vielen Tabellen machen?
Ich hätte jetzt einfach für jede Disziplin eine Tabelle angelegt, die in etwa so aussieht:
Name, Single Best, Average, KW

Der Name wird dann durch das Formular überprüft. (Indem man auf die Userdatenbank vom Forum zurückgreift, und das Passwort überprüft)
Single Best und Average werden auch vom Formular berechnet (es ist ja unnötig, jede einzelne Zeit zu speichern, wenn nur average und single best von Belang sind).
Um doppelte Einträge zu vermeiden, muss das Formular überprüfen, ob sich der User in der aktuellen Kalenderwoche schon in der Disziplin eingetragen hat. (Vielleicht wäre es auch einfacher, anstatt die Wettbewerbe anhand der KW zu identifizieren, jedem Wettbewerb eine Nummer zuzuordnen. Also Wettbewerb 1, Wettbewerb 2 etc..)

Die Rekordliste sollte sich recht simpel mit einer einzigen Datenbank realisieren lassen. Die DB sieht dann genau so aus, wie die für die einzelnen Disziplinen. Immer wenn jemand seine Zeiten übermittelt, wird geprüft, ob der User schon in der Rekordliste steht. Ist das nicht der Fall, wird er mit diesen Zeiten in die DB eingetragen. Wenn er schon in der DB steht, werden die gespeicherten Zeiten mit den Übermittelten verglichen, und aktualisiert (sofern die Zeiten besser waren).

____________________________________________________________


Weitere Überlegungen + Beispiel

Wie oben schon gesagt, würde ich für jede Disziplin eine Tabelle anlegen, die Name, single best, average, und die wettberbsnummer enthält.
Ausserdem würde ich noch eine Tabelle anlegen, in der Einstellungen gespeichert werden. Hier kann man dann festlegen, welche Nummer der aktuelle Wettbewerb hat, welche user evtl. gesperrt sind etc.

Dann brauchen wir 3 Formulare: Eins für die Administration (Wettbewerb starten/beenden, user sperren, korrekturen vornehmen...)
Das zweite dient dazu die Daten zu erfassen, und kann in etwa so gestaltet werden, wie Ben es beschrieben hatte. Die aktuelle Wettbewerbsnummer wird dann aus der Einstellungstabelle ausgelesen. (man könnte, aus welchen Gründen auch immer, den wettbewerb sperren, indem man die nummer auf 0 setzt).
Das dritte Formular dient dazu, die Ergebnisse anzuzeigen. Man kann die Kalenderwoche ud die Disziplin auswählen, und die Daten nach Zeiten oder Usernamen sortieren.

Beispiel:

Wir habe bereits einen abgeschlossenen Wettbewerb (nr. 1). Der aktuell laufende ist nr. 2. Dementsprechend steht die Wettbewerbsnummer in der einstellungstabelle auf 2.
Für jede Disziplin haben wir dann eine Tabelle die so aussieht:
Name;single;average;Wettbewerbsnummer
Ben;12.34;23.45;1
loose;34.12;45.67;1
sol1x;23.45;56;78;1
Ben;34.12;45.67;2
loose;12.34;56.78;2

Im aktuellen Wettbewerb haben sich Ben und ich bereits eingetragen. Jetzt will sich sol1x über das Formular eintragen. Dabei gibt er seine zeiten, die disziplin, seinen Namen, und sein Passwort ein. Über die userdatenbank vom Forum werden Name und PW überprüft. Dann werden single und average berechnet, und in die Tabelle der Disziplin eingetragen. (Man muss nicht unbedingt für jede disziplin eine Tabelle machen, sondern könnte auch noch ein Feld "Disziplin" einfügen.) Jetzt wird überprüft, ob sol1x sich in dem aktuellen Wettbewerb (nr. 2) schon in der Disziplin eingetragen hat. Wenn nicht (und wenn er für den wettbewerb nicht gesperrt ist), werden seine Daten gespeichert, ansonsten gibts ne Fehlermeldung.

Sobald der Wettbewerb zuende ist, wird die wettbewerbsnummer auf 0 (gesperrt) oder direkt auf 3 (für den nächsten wettbewerb gesetzt).

Ich hoffe das war halbwegs verständlich. Ich bitte um Fragen und weitere Ideen Wink
#4
Der Dump der leeren Datenbank.


Angehängte Dateien
.zip   dump.zip (Größe: 937 Bytes / Downloads: 25)
#5
Sooo ich war jetzt mal ganz fleißig =)
http://sol1x.so.funpic.de/Neues%20Verzeichnis/
Admin center ist fertig ... schaut es euch einfach an - ist alles selbsterklärend ;-)

der Source (für loose vorallem ist auch dabei)

Kritik erwünscht ;-)
#6
Sieht gut aus!
Wobei wir noch überlegen sollten, dass das auch wirklich nur befugte Personen da ranlassen. Also auch hier vllt ne Userabfrage.

Der Rest ist aber völlig ausreichend denk ich.

Was muss dann jetzt noch getan werden?
Das Formular muss die Datenbank befüllen und die Rekorde aktuell halten.
Abfrage und Ausgabe.
Hab ich was vergessen?
#7
ja ne das ist klar - allerdings wird das kein Problem mehr wenn ich erstmal die PW abfrage im Formular hab ... dann kann ich das für admins in ca. 2 min schreiben ;-)

absolut cool schauts jetzt noch aus :-D
ich kann jetzt schon die Datenbanken füllen ...
wird im moment auch schon gemacht mit meinem script
ich hab alles nochmal in die source.rar gmeacht

einzige Problem ... deine Primärschlüssel sind falsch desshalb könnte ein und derselbe x-mal im selben Wettbewerb posten^^...
#8
Ich hab das Problem eben mit nem Arbeitskollegen gelöst. CSV als Tabellentyp ist ganz schlecht. Langsam und nur sinnvoll, wenn man ausschließlich CSV-Dateien in die DB einlesen will. Es macht sonst keinen Sinn. Es nimmt auch die Funktion der Primärschlüssel komplett raus, da es das nicht unterstützt.
Ich bau die DB nachher komplett neu und lade einen Dump hier hoch.
Den anderen Dump könnt ihr löschen, da es ja komplett unbrauchbar ist.
#9
zumal ich gerade erfahren habe, dass man keine 2 Primary Keys haben kann ;-)
wenn du alles neu machst ..
dann mach noch eine Tabelle dazu mit den spalten
Wettbewerb Name | Wettbewerb Nummer

und bei den Rekorden kansnt du doch eig. die spalte "Wettbewerb" rauslassen oder?

muss leider gleich weider raus ... sonst würd ich gleich weiterschreiben wenn du fertig bist...^^
#10
lol
Ich habs grad kurz bevor du gepostet hast fertig gemacht. Und JA ich hätte die Wettbewerbsnummer da rauslassen sollen -.-
Aber man kann 2 Felder als Primärschlüssel zusammenfassen. Diese gelten dann nur in Kombination. So ist es gedacht und so hab ich es durchgeführt.

So.
Wettebewerbsfelder aus den Rekordtabellen entfernt. Im Anhang der aktuelle Dump inkl allen Schlüsseln etc.


Angehängte Dateien
.zip   usr_web86_2.sql(2).zip (Größe: 1,08 KB / Downloads: 23)


Gehe zu: