Anfänger-Studiumprojekt...Hilfe?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Saki_Suspicious
User
Beiträge: 1
Registriert: Sonntag 3. Juli 2011, 11:24

Hallo,
gleich mal vorran geschickt: Ich bin was Python und Programmierung ganz generell angeht, totaler Laie. Ich studiere Interface design im zweiten Semester und bin bei meinem Projekt an einem toten Punkt angekommen, der mich ziemlich zur verzweiflung treibt, da ich leider bei weitem nicht genug gelernt habe bisher um selbst einfach auf die richtigen Codes zu kommen und so muss ich mir natürlich hier und da hilfe sammeln.
Nun habe ich dieses Forum entdeckt und hoffe hier auf freundliche, verständnissvolle und lehrreiche Hilfe. ;)

Und zwar Programmiere ich eine Website, nichts großes, es ist ja das erste Projekt. Ich fasse einfach mal grob zusammen wie das aussieht, zum Verständniss:
Man wählt einen "Helden", dannach einen Gegner, dan gelangt man auf die "Kampf"-Seite, wo unter den Kämpfern Links zu sehen sein sollen, die man verschicken muss und wenn jemand auf den jeweiligen Link klickt, erhält der dazugehörige Kämpfer einen "Punkt" und nach einer Stunde wird die ganze Sache ausgewertet und idealerweise auf einem sichtbaren Counter auf der Startseite verzeichnet wer gewonnen hat, damit man gleich in der Übersicht hat wer wieviele Kämpfe schon gewonnen hat. Und da ist es auch schon wo ich derzeit ein wenig verzweil. Denn mit dem Klicken der Links muss in der Datenbank (mySQL) der jeweilige counter um eins nach oben gehen. Ich dachte, das müsste doch ganz einfach sein, bin aber bisher auf keine Lösung gekommen die geklappt hätte.
Ganz zu schweigen von der Auswertung und dem Verzeichnen des Sieges auf der Startseite.

Aber ich wäre schon sehr froh, wenn die Counter-geschichte währrend des kampfes iwie funktionieren könnte.

Kann man mir da helfen, bzw. ist mein Problem verständlich? Manch einer wird vielleicht schmunzeln denn wahrscheinlich ist es wahrlich nicht schwer, aber ich hoffe um Verständniss dass ich wirklich erst seit knapp 3 Monaten um die existenz von Python überhaupt erst weiß und bei weitem noch nicht genügend know-how habe.

Falls mir jemand einen Code schickt, wäre ich sehr erfreut, wenn man auch ein wenig was dazu erklären könnte, ich will ja auch was dabei lernen und mir nicht einfach nur Lösungen abholen ;)

Vielen Dank und liebe Grüße
Saki
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Willkommen im Forum!

Wie genau es geht ist abhaengig von deiner Datenbank-/Tabellenstruktur abhängig.

Im Grunde brauchst du in der Datenbanktabelle mindestens zwei Attribute mit unique-Contraint: Kämpfer-ID und Link(-ID), den 2. Eintrag, wenn du sicherstellen willst, dass Links nur einmal benutzt werden. Und dann zaehlst du wie viele Zeilen in der Tabelle jeweils mit der Kämpfer-ID existieren. Einen eigenen Counter braucht man hier nicht.
deets

@Saki_Suspicious

Zweierlei: auch wenn das jetzt nicht aussieht wie die uebliche "mach mir meine Hausaufgaben"-Frage ist es schon ganz schoen viel, was du da verlangst. Was deshalb gerne gesehen wird ist, was du schon probiert hast. Damit man dir konkret helfen kann. Und nicht einfach die Aufgabenbeschreibung.

Aber davon abgesehen, funktioniert das, was du dir da ausgedacht hast, natuerlich nur so mittelpraechtig. Wenn es dir einzig und alleine darum geht das Konzept zu zeigen, dann ok.

Doch normalerweise kannst du nicht einfach einen einzelnen Link rendern, und den dann allen moeglichen Leuten schicken - und dann erwarten, dass da was sinnvolles bei rum kommt. Denn dann schreibe ich mir einen 3-Zeiler in Python, und ballere dir 1000.000 Hits auf den Kaempfer meiner Wahl. Womit erstens dein Ergebnis null und nichtig ist - und zweitens dein Server kollabiert.

Wenn du das verhindern willst, musst du einen anderen Weg gehen. Je nach verwendetem sozialen Netzwerk ist das speziell: wenn's emails sein sollen, dann muss dein Server eine Liste von emails entgegen nehmen. Daraufhin generiert er fuer jede email eine Mail, mit einem *eindeutigen* Link, der (so wie cofi das schon beschrieb) nur einmal gedrueckt werden kann (bzw. zwei, einmal Held, einmal Monster, und wofuer der User sich entscheidet ist dann eben seine Wahl).

Wenn du mit Facebook oder anderen sozialen Plattformen arbeiten willst, muss man sich da was anderes ausdenken. Emails ist da erstmal das praktischste.
Antworten