PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anzeige der Ränge aus den Top 10



swinxx
13.12.2006, 11:43
Hi,

hier mal ein kleiner Schnippzel mit dem man im Menü Rechts oder Links (oder sonst wo) ausgeben kann welchen Platz ein User in den Top 10 hat !

Jeder User sieht dann seine eigenen Ränge von Bannerklicks, Textlinkklicks und Bettelaufrufe im seitlichen Menü.


Einbauanleitung:

1.) Erstellen einer php Datei (mit Editor als .php speichern) mit dem Namen inc_raenge.php !

In diese Datei wird folgendes hineingeschrieben:


<?
$trbgcolor = "#FF6D1C";
$bgcolor = "#FF6D1C";
?>

<table width="100%" cellpadding="2" cellspacing="1" border="0" bgcolor="<?=$bgcolor;?>">
<tr bgcolor="<?=$trbgcolor;?>">
<td><b>Banner Klicks</td>
<?
$rangb = 0;
$klicksrangb = db_query("SELECT `uid`,`klicks` FROM ".$db_prefix."_kontodaten ORDER BY klicks DESC");
while ($klicksb = mysql_fetch_array($klicksrangb)) {
$rangb++;
if ($klicksb['uid'] == $_SESSION['uid']) {
echo '<td><b>Platz '.$rangb.'</td>';
}
}
?>
</tr>
<tr bgcolor="<?=$trbgcolor;?>">
<td><b>Text Klicks</td>
<?
$rangt = 0;
$klicksrangt = db_query("SELECT `uid`,`textlinks` FROM ".$db_prefix."_kontodaten ORDER BY textlinks DESC");
while ($klickst = mysql_fetch_array($klicksrangt)) {
$rangt++;
if ($klickst['uid'] == $_SESSION['uid']) {
echo '<td><b>Platz '.$rangt.'</td>';
}
}
?>
</tr>
<tr bgcolor="<?=$trbgcolor;?>">
<td><b>Angebettelt</td>
<?
$rangbt = 0;
$klicksrangbt = db_query("SELECT `uid`,`angebettelt` FROM ".$db_prefix."_kontodaten ORDER BY angebettelt DESC");
while ($klicksbt = mysql_fetch_array($klicksrangbt)) {
$rangbt++;
if ($klicksbt['uid'] == $_SESSION['uid']) {
echo '<td><b>Platz '.$rangbt.'</td>';
}
}

?>
</tr>
</table>
Diese Datei wird dann in den Ordner lib hochgeladen !


2. Ausgabe in einem der Menüs (menu_rechts oder menu_links)

folgenden Code an gewünschter Stelle einfügen !


<?menuehead("Ränge in den Top 10")?>
<center><b>Ränge in Top10:</center></b><br>
<?
if ($_SESSION['login'] == 'true') {
@require_once ("lib/inc_raenge.php");
}
?>
<?menuefoot();?>
In diesem Fall wird eine neue Box erstellt. Wenn du die Ausgabe in einer bereits bestehenden Box haben willst einfach Menuhead und Menufoot wegnehmen, also dann so:


<center><b><u>Ränge in Top10:</u></center></b><br>
<?
if ($_SESSION['login'] == 'true') {
@require_once ("lib/inc_raenge.php");
}
?>

3. Anpassungen:

In der inc_raenge.php Farbcodes, die ganz am Anfang stehen, ändern...

$trbgcolor = "#9C1818"; --> Zellenhintergrundfarbe
$bgcolor = "#FFFFFF"; --> Tabellenfarbe

4. Fertig :)

Bei Fragen einfach fragen !

cu, Swinxx

Masterphil
13.12.2006, 12:13
Netter Schnipsel, hab ihn schon mal in meine FAV'S gezogen.

Noch toller wäre der Schnipsel natürlich, wenn er für aktive Ralleys funktionieren würde.

Sprich - Eigene Aufrufe bei den Ralley's.

Aber danke für den free Schnipsel hier nochmal...

Kostet wenigstens keine Downies :D

MFG

swinxx
13.12.2006, 12:26
Noch toller wäre der Schnipsel natürlich, wenn er für aktive Ralleys funktionieren würde.

Hmm, das mit der Rallyanzeige hab ich irgendwo auch schonmal gesehen !

Weiss nur irgendwie nicht mehr wo...

Naja, falls mir das nochmal unter die Augen kommt lass ich es dich wissen !

cu

Ach ja, und dank für den Schnippsel geht auch an Gyros der mir geholfen hat diesen zu basteln !

Andyhx888
13.12.2006, 14:17
Sehr gut. Danke

SebbyPHM
13.12.2006, 15:23
mmmh, wäre es nicht sinnvoller, nach der ausgabe
echo '<td><b>Platz '.$rangt.'</td>'; die while-schleife mit
break; zu beenden?

oder gleich schonender:

<?
if ($_SESSION['login'] == 'true') {
$trbgcolor = "#FF6D1C";
$bgcolor = "#FF6D1C";

// Kontodaten abfragen
$konto = mysql_fetch_object (db_query ("SELECT `klicks`,`textlinks`,`angebettelt` FROM ".$db_prefix."_kontodaten WHERE uid = ".$_SESSION['uid']));


// Bannerklicks
$aktuell1 = mysql_fetch_object (db_query ("SELECT COUNT(uid) as Anzahl FROM ".$db_prefix."_kontodaten WHERE klicks > ".$konto->klicks));

// Textlinkklicks
$aktuell2 = mysql_fetch_object (db_query ("SELECT COUNT(uid) as Anzahl FROM ".$db_prefix."_kontodaten WHERE textlinks > ".$konto->textlinks));

// Angebettelt
$aktuell3 = mysql_fetch_object (db_query ("SELECT COUNT(uid) as Anzahl FROM ".$db_prefix."_kontodaten WHERE angebettelt > ".$konto->angebettelt));
?>

<table width="100%" cellpadding=2 cellspacing=1 border=0 bgcolor="<?=$bgcolor;?>">
<tr bgcolor="<?=$trbgcolor;?>">
<td><b>Banner Klicks</td>
<td><b>Platz <?=$aktuell1->Anzahl+1;?></td>
</tr>
<tr bgcolor="<?=$trbgcolor;?>">
<td><b>Text Klicks</td>
<td><b>Platz <?=$aktuell2->Anzahl+1;?></td>
</tr>
<tr bgcolor="<?=$trbgcolor;?>">
<td><b>Angebettelt</td>
<td><b>Platz <?=$aktuell3->Anzahl+1;?></td>
</tr>
</table>
<?
} else {
?>
not logged in
<?
}
?>

swinxx
13.12.2006, 16:25
Ja,

man kann natürlich auch erstmal alle DB abfragen machen und dann die Ausgaben definieren !

Kommts aufs selbe heraus...

Oder wie meinst du mit schonender ?

Wie gesagt im proggen bin ich nicht so das As, bei dem erstellen hab ich Hilfe von Gyros gehabt !

Wäre mit deinem Code die Abfrage schneller ?

cu, Swinxx

SebbyPHM
13.12.2006, 16:45
ja, da bei dem anderen code die while-schleife immer weiter abgearbeitet wird^^

swinxx
13.12.2006, 18:36
Na dann werd ich das mal gleich ändern !

Danke dir

cu

grosspietsch
22.12.2006, 01:00
super danke dir!!!