• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Letzen x Votes auf Homepage (Votifier)

Status
Für weitere Antworten geschlossen.

dezeyer23

Redstoneengineer
Registriert
14 Mai 2012
Beiträge
41
Diamanten
0
Ich wollte schon seit längerem auf meiner Homepage die letzten 10 Voter anzeigenlassen. Leider hab ich nirgens ein TUT oder ähniches gefunden, welches das kann.
Also hab ich jetzt selbst ein PHP-Script erstellt, welches ich jetzt mal Vorstelle, damit alle die, die nicht so viel Ahnung in dem Bereich haben, sich den Traum verwirklichen können.

Ich gehe davon aus, dass ihr Votifier installiert habt und dieser auch soweit funktioniert.

Dann braucht ihr:
- MySQLLoggerListener.class
- MYSQL Tabelle
- Webspace

Fangen wir an...

Zuerst kopiert/verschiebt ihr die MySQLLoggerListener.class nach plugins\Votifier\listeners .
Dann den Server reloaden.
Votifier wird einen Error ausgeben und nicht starten.
Das ist normal, da er keine Datenbank findet bzw nicht connecten kann.
Aber in plugins\Votifier\ findet ihr eine MySQLLoggerListener.ini

Code:
#MySQL Logger Listener Configuration
#Sat Aug 25 13:53:50 CEST 2012
user=votifier
port=3306
pass=votifier
host=127.0.0.1
database=votifier

Die Felder entsprechend ausfüllen.
Reloaden.

Dann sollte in eurer MySQL eine Table Namens "votes" erscheinen. Hierrein werden alle Votes gespeichert, in folgenden Spalten:
id = Erster Vote id=1, zweiter id=2 usw.
minecraft_user = Name des Voters
ip = IP des Voters
service = Die Seiter, von der gevotet wurde
time = Wann der Vote ausgeführt wurde

Kommen wir zum eigendlichen Teil, der Script:

Code:
<?php
$anzeigen=5; // Wieviele Spieler sollen gelistet werden?
$host = ""; //Host
$user = ""; //User
$pass = ""; //Password
$dbase = ""; //Tabelle
$db = mysql_connect($host, $user, $pass) or die ("verbindung fehlgeschlagen");
mysql_select_db($dbase, $db) or die ("verbindung zur datenbank fehlgeschlagen");
$sql = "SELECT MAX(id) AS letzte FROM votes ORDER BY id";
$query = mysql_query($sql);
$rs = mysql_fetch_array($query);
$letzte = $rs['letzte'];
$zahl = $letzte - $anzeigen;
$sql = "SELECT * FROM votes LIMIT $zahl,$anzeigen";
$query = mysql_query($sql);
echo "<table>"; //Ich gebe alles in einer Tabelle aus
$stack = array();
while($rs = mysql_fetch_assoc($query))
$stack[] = $rs;
$stack = array_reverse($stack);
foreach($stack as $rs) {
$un = $rs['minecraft_user'];
echo "<tr><td>
<img src="[URL="http://www.minecraft-server.eu/board/view-source:http://mag.racked.eu/tools/avatar/32/$un.png"]http://mag.racked.eu/tools/avatar/32/$un.png[/URL]" alt="" border="0"></td><td>$un</td><td>".$rs['service']."</td></tr>"; //mit $rs[''] gebt ihr dan die Spalte aus, wie oben aufgelistet. zB. $rs['ip'] gibt die ip aus
}
echo "</table>";
?>



Das wars eigendlich schon. Wer den meistgevoteten anzeigen will, kann das hier nutzen:
Code:
<?php
$anzeigen=1;
$host = "";
$user = "";
$pass = "";
$dbase = "";
$db = mysql_connect($host, $user, $pass) or die ("verbindung fehlgeschlagen");
mysql_select_db($dbase, $db) or die ("verbindung zur datenbank fehlgeschlagen");
$select = "SELECT COUNT( * ) AS Zeilen , minecraft_user FROM votes GROUP BY minecraft_user ORDER BY Zeilen DESC LIMIT 0 , $anzeigen";
$result = mysql_query($select,$db);
if($result){
echo "<table>";
while($row = mysql_fetch_array($result)){

echo "<tr><td>Vote-Meister</td><td>:</td><td>".$row['minecraft_user']."</td></tr>";
}
echo "</table>";
}
?>

Ich hoffe ich konnte einigen hier helfen.

Ein Beispiel hab ich hier: mc.pixelt.de/vote

LG Dez
 
Zuletzt bearbeitet:

H4RDC0REx3

Workaholic
Registriert
17 Dezember 2011
Beiträge
879
Alter
28
Diamanten
300
Hey, könntest du bitte einen Link mit reinpacken? finde keinen gültigen..



Grüße H4RDC0REx3
 

dezeyer23

Redstoneengineer
Registriert
14 Mai 2012
Beiträge
41
Diamanten
0
@ iSmoothxD: Ich hab auch tagelang gesucht und mich dan drangesetzt ich bin auch noch nichtmal fortgeschrittener in php, aber mit ein bischen lw und google geht alles :D

@ H4RDC0REx3: Ein link für was?

//edit ok er war schneller xD
 

H4RDC0REx3

Workaholic
Registriert
17 Dezember 2011
Beiträge
879
Alter
28
Diamanten
300
aso, den hab ich auch gefunden aber wegen dem kommentar "
Work with latest Votifier ? can you please update?"
 

dezeyer23

Redstoneengineer
Registriert
14 Mai 2012
Beiträge
41
Diamanten
0
H4RDC0REx3' schrieb:
aso, den hab ich auch gefunden aber wegen dem kommentar "
Work with latest Votifier ? can you please update?"
Du willst also einen link zur neusten version von votifier oder meinst du, ob der listner auch nit der neusten version (7) funktioniert
 
C

Cabraca

Guest
Code:
<?php
$anzeigen=5; // Wieviele Spieler sollen gelistet werden?
$host = ""; //Host
$user = ""; //User
$pass = ""; //Password
$dbase = ""; //Tabelle

$db = mysql_connect($host, $user, $pass) or die ("verbindung fehlgeschlagen");
mysql_select_db($dbase, $db) or die ("verbindung zur datenbank fehlgeschlagen");
$sql = "SELECT * FROM votes ORDER BY id DESC LIMIT 0,$anzeigen";
$query = mysql_query($sql);
$stack = array();
while($rs = mysql_fetch_assoc($query))
$stack[] = $rs;

echo "<table>";
foreach($stack as $rs) {
echo "
    <tr>
        <td>
            [img]http://mag.racked.eu/tools/avatar/32/".$rs[[/img]
        </td>
        <td>
            ".$rs['minecraft_user']."
        </td>
        <td>
            ".$rs['service']."
        </td>
    </tr>";
}
echo "</table>";
?>

MIt dem Code brauchste nurnoch eine statt zwei mysql abfragen.

MFG Cab
 

dezeyer23

Redstoneengineer
Registriert
14 Mai 2012
Beiträge
41
Diamanten
0
Ich hab den Meistgevoteten im header und das andere nur auf der Voteseite, deshalb sinds 2 verschiedene, aber thx
 
C

Cabraca

Guest
Ich hätte gerne eine Topliste der Voter.

Skin/ Name/ Anzahl der Votes

Code:
<?php
$anzeigen=5; // Wieviele Spieler sollen gelistet werden?
$host = ""; //Host
$user = ""; //User
$pass = ""; //Password
$dbase = ""; //Tabelle

$db = mysql_connect($host, $user, $pass) or die ("verbindung fehlgeschlagen");
mysql_select_db($dbase, $db) or die ("verbindung zur datenbank fehlgeschlagen");
$sql = "SELECT COUNT(id) as anzahl,minecraft_user FROM votes GROUP BY minecraft_user ORDER BY anzahl DESC LIMIT 0,$anzeigen";
$query = mysql_query($sql);
$stack = array();
while($rs = mysql_fetch_assoc($query))
$stack[] = $rs;

echo "<table>";
foreach($stack as $rs) {
echo "
    <tr>
        <td>
            [img]http://mag.racked.eu/tools/skin/64/".$rs[[/img]
        </td>
        <td>
            ".$rs['minecraft_user']."
        </td>
        <td>
            ".$rs['anzahl']." Votes
        </td>
    </tr>";
}
echo "</table>";
?>
 

DevilNacho

Miner
Registriert
21 September 2011
Beiträge
167
Diamanten
0
Minecraft
DevilNacho
Habe das Script usw eingefügt.
Und wenn ich dann auf der Seite gehe kommt dies :
";
foreach($stack as $rs) {
echo "


%22.$rs[



".$rs['minecraft_user']."


".$rs['anzahl']." Votes

";
}
echo "";
?>
 

dezeyer23

Redstoneengineer
Registriert
14 Mai 2012
Beiträge
41
Diamanten
0
da kann ich leider net helfen, ich kann kein java. Dan musste nach einem listner suchen, oder dir einen machen (lassen)
 
Z

zh32

Guest
:p

snapshot4.png


Edit: Jetzt erst Cabracas Post gesehen. Hättest ja auch das nehmen können @wbkkramer -.-
 
C

Cabraca

Guest
Letztens Votes mit Zeit
Code:
<?php
$anzeigen=5; // Wieviele Spieler sollen gelistet werden?
$host = ""; //Host
$user = ""; //User
$pass = ""; //Password
$dbase = ""; //Tabelle

$db = mysql_connect($host, $user, $pass) or die ("verbindung fehlgeschlagen");
mysql_select_db($dbase, $db) or die ("verbindung zur datenbank fehlgeschlagen");
$sql = "SELECT * FROM votes ORDER BY id DESC LIMIT 0,$anzeigen";
$query = mysql_query($sql);
$stack = array();
while($rs = mysql_fetch_assoc($query))
$stack[] = $rs;

echo "<table>";
foreach($stack as $rs) {
echo "
    <tr>
        <td>
            [img]http://mag.racked.eu/tools/avatar/32/".$rs[[/img]
        </td>
        <td>
            ".$rs['minecraft_user']."
        </td>
        <td>
            ".$rs['service']."
        </td>
        <td>
            ".$rs['time']."
        </td>
    </tr>";
}
echo "</table>";
?>

Häufigsten Votes mit Zeit vom letzten Vote:
Code:
<?php
$anzeigen=5; // Wieviele Spieler sollen gelistet werden?
$host = ""; //Host
$user = ""; //User
$pass = ""; //Password
$dbase = ""; //Tabelle

$db = mysql_connect($host, $user, $pass) or die ("verbindung fehlgeschlagen");
mysql_select_db($dbase, $db) or die ("verbindung zur datenbank fehlgeschlagen");
$sql = "SELECT COUNT(id) as anzahl,minecraft_user,time FROM (SELECT * FROM votes ORDER BY time DESC) as votes GROUP BY minecraft_user ORDER by anzahl DESC LIMIT 0,$anzeigen";
$query = mysql_query($sql);
$stack = array();
while($rs = mysql_fetch_assoc($query))
$stack[] = $rs;

echo "<table>";
foreach($stack as $rs) {
echo "
    <tr>
        <td>
            ".$rs['anzahl']." Votes
        </td>
        <td>
            ".$rs['minecraft_user']."
        </td>
        <td>
            ".$rs['time']."
        </td>
        <td>
            [img]http://mag.racked.eu/tools/avatar/64/".$rs[[/img]
        </td>
    </tr>";
}
echo "</table>";
?>



Da haste das Datum :p
 
Status
Für weitere Antworten geschlossen.
Oben