PHP / SQL Projekt: Wichtel Web App

Wichtel Web AppIn meiner Familie Wichteln wir schon seit einigen Jahren. Anstatt, dass jeder jedem ein Geschenk macht, wird am Heiligabend ausgelost wer wem nächstes Jahr ein Geschenk macht. Heisst jeder bekommt ein Geschenk, und jeder gibt ein Geschenk. Das interessante dabei, man weiss nicht vom wem man sein Geschenk bekommt.
Bis jetzt haben wir die Zuteilung per Auslosung gelöst. Problem dabei war, ein paar haben sich nicht notiert wen sie gezogen haben und haben es wieder vergessen. Deshalb habe ich ein kleines Programm in php geschrieben, dass jeder Person einen Wichtel per Zufallsprinzip zuweist, die Ergebnisse in eine SQL Datenbank speichert und danach die Personen per E-mail informiert, welche Person ihnen zugeteilt wurde.

Der Zuweisungsalgorithmus
Der Algorithmus für die Zuweisung hat 3 Regeln.
1. Eine Person darf nicht sich selbst zugewiesen sein
2. Eine Person darf nicht doppelt zugewiesen werden
3. Einer Person darf nicht die gleiche Person wie beim letzten Durchgang zugewiesen werden.
Sobald ein Fehler registriert wird, setzt er die “zähl” Variable um 1 zurück um die aktuelle Position nochmals zu bearbeiten und eine neue Zufallszahl zu generieren.
Tritt allerdings der Fall ein, dass für die letzte Position nur noch die zahl “10″ vergeben werden kann, gerät das Programm in eine Schleife aus der es nicht mehr herauskommt. Deshalb gibt es einen Errorcounter. Sobald dieser 100 erreicht, stimmt vermutlich etwas nicht, das ganze Programm wird zurückgesetzt und automatisch neu gestartet.
Im Normalfall hat das Programm nach 30 bis 40 Durchläufen jeder Person einen Wichtel zugewiesen.

SQL Anbindung und Weboberfläche
Die generierten Daten werden jetzt in eine SQL Tabelle geschrieben. Hier sind nebst ID mit der eine Person eindeutig identifiziert werden kann auch Mail Adresse und Name der Person gespeichert. Nun wird eine E-mail Nachricht mit dem Namen des Wichtels erstellt und diese an die in der Datenbank hinterlegte Mail Adresse gesendet.
Für den Fall, das sich jemand nicht erinnert wem er ein Geschenk machen muss, und die Mail ebenfalls gelöscht hat, gibt es eine einfache Weboberfläche. Diese ist mit .htaccess passwortgeschützt und enthält lediglich eine dynamisch erstellte Dropdown Liste mit sämtlichen Namen die in der Datenbank eingetragen sind und einen Button “Mail versenden”. Hier kann man nun seinen Namen aussuchen und auf den Button klicken. Das Programm erstellt nun nochmals eine E-mail und sendet diese dem User zu.

Auf der Testumgebung funktioniert das Programm einwandfrei. Wie es sich in der Praxis verhält wird sich in c.a. einem Monat zeigen.
Eine Idee für eine Erweiterung wäre, dass man über die Weboberfläche Geschenkideen für sich selbst eintragen kann um es seinem Wichtel etwas leichter zu machen.

Download
Wichtel Web App

This entry was posted in Projekte and tagged , . Bookmark the permalink.

5 Responses to PHP / SQL Projekt: Wichtel Web App

  1. Riipa says:

    Link? Sources? :)

    Ich will doch auch PHP lernen, da wäre das mal nützlich.

  2. Alion says:

    Leider läuft die Testversion offine. Und die live version habe ich passwortgeschützt, da sonst jeder meine Familie mit E-mail zuspammen könnte. Nun es währe immer da gleiche mail aber dennoch.
    Ich kann dir sonst morgen mal den source code hochladen. Ich habe mir auch mit dem auskommentieren mühe gegeben. :P

  3. Riipa says:

    Cool Alion, vielen Dank für’s Hochladen und fröhliches Wichteln!

  4. yannick says:

    Ich glaub das script geht nur für die ersten 10 leute in der datenbank, ansonsten nice job.

  5. Alion says:

    Stimmt, aber das zu änder ist auch nicht mehr so eine grosse sache.