Bewertung eines Users wie hier im Forum

ExAByte

Mitglied
Ich habe ein Problem (wer nicht?),

ich würde gerne einen Besucher nachdem er XY gemacht hat (zum Beispiel geantwortet) in seinem eigenen Skill-Level erhöhen (wie mit den Balken hier an der Seite). Leider habe ich auf meiner Homepage keine DB zur Verfügung, hat jemand eine Idee ohne Datenbank zugriff?
Es handelt sich um ca. 500 Personen die entsprechend bewertet werden sollen?

Danke
ExAByte
 
Das ist wohl richtig :) Aber das kostet viel Geld...
Außerdem sind ja nicht immer 500 Personen gleichzeitig am Werk (hoffentlich :).

im Grunde geht es um eine Ligaseite, User sollen gegeneinander antretten sich verabreden etc.
Hat denn jemand eine Idee oder eine ScripteSeite wo so etwas zu finden ist? Auf den gängigen finde ich nichts dergleichen, ich scheue ja nicht die Programmierung (sitze seit 7 MOnaten schon an einem Projekt) aber ich hätte gerne mal einen "Anfang", vielleicht auch mir MySQL...

Naja muss wohl in die Taschegreifen.
In erster Linie geht es mir mal um das Beginnen mit der Programmierung, für eure Anregungen habt Dank!

Greetings
ExAByte

TL0P4
 
da bleibt dann wohl nur die txt-file methode

schau dir einfach die txt-gb-tutorials an, da werden die grundprinzipien des txt-file-handlings erklärt.
entsprechend lässt sich das dann auch auf solche user-bewertungen konvertieren.

cu..Jaeger
 
ja, es wird wohl kein weg daran vorbeiführen.
ich hab mal versucht ein komplexes memberscript aus textdateien aufzubauen, was mir auch sehr gut gelang.
allerdings hat php einen nachteil, nämlich die performance in sachen textdateien. das skript lief auf meinem 1.2ghz schon bei 15membern deutlich langsamer als ein normales skript. da wir ca. 25 member im clan haben und der webserver sicher keine 1.5ghz hat :)-)) wäre das skript dann wohl komplett zu "lahmarschig" geworden. ich hatte glück, das sich ein kumpel von mir ein bisschen beim betreiber des servers "eingeschleimt" hat, und wie seit dem unlimitiert viele datenbanken haben :)
man muss halt glück haben
und nu darf ich mich mit mysql beschäftigen (stöhn) obwohl ich viiiieeeel lieber mit textdateien weitergearbeitet hätte, was ja wegen performance gründen nich geht.

man stelle sich vor dieses forum wäre auf textdateien basiert, na dann gute nacht. dann würde das aufbauen der memberliste wahrscheinlich um die *überleg* 1-2minuten dauern...
und das forum wäre so schon vieeeel langsamer als es jetzt ist ;)
 
Ok, ich werde nicht um MySql herumkommen, Serverperformance leuchtet ein :).

Gesetz den Fall ich habe DB-Zugriff, wie kann ich denn nun so ein Ranking (Skills) am Besten bewerkstelligen?
Das würde mich im Moment viel mehr als die Performance interessieren ;-)

Beispiel:
User X bekommt für 50 Creditpunkte ein "Level"
User X soll dann eine Grafik seiner persönlichen Creditpunkte bekommen
wie hier rechts eben...

Also in etwa so:
Credits: -------- 76
Level: >> 2

Jemand eine Idee wie ich das zumindest Anfangen kann?

Danke und wie gehabt - Greetings
ExAByte
 
$posts=anzahl der posts;
if($posts>50)
{
$level=2;
}elseif($posts>100)
{
$level++;
}elseif($posts>150)
{
$level++;
...
...
...
(vielleicht kann man das auch irgendwie als schleife machen)
}else{
$level=1;
}
 
hallo exa

das level berechnest du in deinem fall einfach über
$level=floor($credits/50);

aber ich schätze mal, du meintest die grafische Umsetzung...
da der Balken sich in seiner Breite gafisch nicht verändert reicht es, ein ein-pixel-breites image zu nehmen (z.B. das hier LINKS) und dann per width-attribut im img-tag zu strecken.

etwa so:
PHP:
if ($breite) echo "<img src=\"balken.gif\" height=\"9\" width=\"$breite\" border=\"0\" $alt=\"balken\">";
wobei das bild balken.gif ein 1x9px image ist

es gibt nun verschiedene wege, ausgehend von einem wert $rank die bildbreite $breite zu berechnen.
zunächst solltest du dir überlegen, wie breit der balken maximal sein soll. ($maxbreite)

soll die breite proportional zum rank sein (d.h. es gibt ein maximales ranking $maxrank, welches nicht überschritten wird) so berechnest du $breite folgendermassen:
PHP:
$breite=$rank*$maxbreite/$maxrank;

ist das ranking jedoch open-end, d.h. kann stetig anwachsen, so ist es sinnvoll, eine exponential-fkt. zu benutzen
PHP:
$halb=30;
$faktor=log(0.5)/$halb;

$breite=$maxbreite*(1-exp($rank*$faktor));
dabei gibt $halb an, bei welchem ranking der balken seine halbe grösse erreicht hat, je höher dann das ranking, umso näher kommt der balken seiner gesamtbreite.

jetzt musst du nur noch mit html/css nen rahmen drumrum basteln, welcher verdeutlicht wie breit der balken maximal werden kann und das wars

hoffe mal, das war das, was du meintest :)

cu Jaeger
 
Zuletzt bearbeitet:
PHP:
$level = ($credits % 50)++;
Damit errechnest du den Level, wenn er alle 50 Creditpunkte erhoeht werden soll.
 
max, ich glaub, du hast dich da gleich zweifach vergriffen :)

erstens braucht er die floor fkt, nicht den modulo-operator
und zweitens spuckt das ++ hier nen fehler aus, also doch lieber:
PHP:
$level=floor($credits/50);
 

Neue Beiträge

Zurück