ilch Forum » Allgemein » HTML, PHP, SQL,... » Eine Liste automatisch aktualisieren

Geschlossen
  1. #1
    User Pic
    Oxe Mitglied
    Registriert seit
    09.08.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    Also ich habe folgende Frage.

    Ich möchte auf unserer Kal Online Homepage eine Tabelle machen ( Box oder Seite wäre egal ) die die User automatisch in ein Ranking einfügt.

    Sprich also mal als Bespiel

    User1 schreibt in sein Profil : LvL 56
    User2 schreibt in sein Profil : LvL 70

    nun soll also diese Tabelle im Pofil schauen wer von beiden das höhere level hat und dies in einer eigenen Box/Seite als Ergebnis anzeigen in etwa so :

    Ranking

    1. User2 LvL 70
    2. User1 LvL 56

    Hat da wer ne Idee und könnte mir helfen bei der Umsetzung , habe leider nicht die grosse Ahnung von PHP/HTML

    Danke schon mal im Voraus


    verwendete ilchClan Version: 1.1

    betroffene Homepage: kalonline.omen-xtrem-fighters.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ist nicht wirklich schwer, hast du schon ein Feld dafür angelegt im Adminbereich?
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Oxe Mitglied
    Registriert seit
    09.08.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    ja also ich hab ne neue Seite gemacht die nennt sich Top25 Ranking

    im Moment muss ich das halt immer selber eintragen was bissl aufwendig ist
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also eine eigene Seite, ich meinte ob du schon ein Profilfeld angelegt hast, in das deine User ihr Level eintragen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Oxe Mitglied
    Registriert seit
    09.08.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    Achso ja allerdings haben wir das in die profil_edit fest rein schreiben müssen nachdem es durch ein Modul ( frag mich leider nicht welches ) alles verschoben war ^^

    Es steht also im Admin Menü drin und fest in der Datei profil_edit.php

    Sieht dann so Aus

    <br>
    <fieldset>
    <legend>Ingame Infos</legend>
    <font color="red">
    <label style="float:left; width:100%;">1rst CharName</label><input type="text" name="profilefields[19]" value=""><br />
    </font>
    <label style="float:left; width:100%;">LvL des Chars</label><input type="text" name="profilefields[20]" value=""><br />
    <label style="float:left; width:100%;">Gilde </label><input type="text" name="profilefields[21]" value=""><br />
    <label style="float:left; width:100%;">Position in Gilde </label><input type="text" name="profilefields[22]" value=""><br />

    Die Infos die das Ranking abfragen soll sind Name 1rst CharName ; LvL ; Gilde

    und die Ausgabe soll halt dann in einer Tabelle erfolgen also


    Name : LvL : Gilde
    xyz : 56 : MeineGilde
    abc : 52 : DeineGilde

    <<< Mal vereinfacht dargestellt hoffe du weisst was ich meine zwinker


    Zuletzt modifiziert von Oxe am 09.08.2009 - 15:12:26
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    So habs jetzt nicht direkt getestet, aber hoffe mal mir sind keine Fehler unterlaufen, falls doch einfach sagen zwinker

    contents/charlist.php
    <?php
    # written by Mairu
    defined('main') or die('no direct access');
    
    $design = new design('Charlist', 'Charlist');
    $design->header();
    $tpl = new tpl('charlist');
    
    $limit = 20;
    $page = $menu->getA(1) == 'p' ? $menu->getE(1) : 1;
    $anfang = ($page - 1) * $limit;
    
    $MPL = db_make_sites($page, 'WHERE fid = 20', $limit, '?charlist', 'userfields');
    
    $qry = db_query("SELECT a.val AS charname, a.uid, b.val AS level, c.val AS gilde
    	FROM ((prefix_userfields a
    	INNER JOIN prefix_userfields b ON b.fid = 20 AND a.uid = b.uid)
    	LEFT JOIN prefix_userfields c ON c.fid = 21 AND a.uid = c.uid)
    	WHERE a.fid = 19
    	ORDER BY b.val DESC
    	LIMIT {$anfang}, {$limit}");
    $tpl->out(0);
    while ($row = db_fetch_assoc($qry)){
    	$tpl->set_ar_out($row, 1);
    }
    $tpl->set_out('MPL', $MPL, 2);
    
    $design->footer();
    ?>


    templates/charlist.htm
    <table width="100%" border="0" cellpadding="3" cellspacing="1" class="border">
      <tr class="Chead" align="center">
        <th height="30" width="50%">CharName</th>
    	<th height="30" width="10%">Level</th>
    	<th width="40%">Gilde</th>
      </tr>
    {EXPLODE}
      <tr class="{class}">
        <td><a href="index.php?user-details-{uid}">{charname}</a></td>
    	<td align="center">{level}</td>
    	<td>{gilde}</td>
      </tr>{EXPLODE}
    </table>
    {MPL}



    Zuletzt modifiziert von Mairu am 25.08.2009 - 11:03:15
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Oxe Mitglied
    Registriert seit
    09.08.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    So sry hat etwas gedauert das auszuprobieren mein Script Guru war net da zwinker

    Also Fehler hier : Fatal error: Call to undefined function db_make_site() in /var/www/html/web334/html/AllyHP/include/contents/charlist.php on line 13

    So sieht die Datei bei uns nun aus hab die Felder umgeschrieben da die bei uns etwas anders aussehen

    <?php
    # written by Mairu
    defined('main') or die('no direct access');

    $design = new design('Charlist', 'Charlist');
    $design->header();
    $tpl = new tpl('charlist');

    $limit = 20;
    $page = $menu->getA(1) == 'p' ? $menu->getE(1) : 1;
    $anfang = ($page - 1) * $limit;

    $MPL = db_make_site($page, 'WHERE fid = 20', $limit, '?charlist', 'userfields');

    $qry = db_query("SELECT a.val AS 1rst CharName, a.uid, b.val AS LvL des Chars, c.val AS aktuelle Prozente, d.val Gilde
    FROM ((prefix_userfields a
    INNER JOIN prefix_userfields b ON b.fid = 20 AND a.uid = b.uid)
    LEFT JOIN prefix_userfields c ON c.fid = 21 AND a.uid = c.uid)
    WHERE a.fid = 19
    ORDER BY b.val DESC
    LIMIT {$anfang}, {$limit}");
    $tpl->out(0);
    while ($row = db_fetch_assoc($qry)){
    $tpl->set_ar_out($row, 1);
    }
    $tpl->set_out('MPL', $MPL, 2);

    $design->footer();
    ?>

    Die Html datei hab ich so gelassen wie du geschrieben hast.
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    mach mal aus db_make_site db_make_sites , kleiner flüchtigkeitsfehler von mairu^^
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Oxe Mitglied
    Registriert seit
    09.08.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    Hm also die Felder stehen schonmal da allerdings nun auch der tolle Text ^^

    MySQL Error:
    1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CharName, a.uid, b.val AS LvL des Chars, c.val AS aktuelle Prozente, d.val Gilde' at line 1
    in Query:
    SELECT a.val AS 1rst CharName, a.uid, b.val AS LvL des Chars, c.val AS aktuelle Prozente, d.val Gilde FROM ((ic1_userfields a INNER JOIN ic1_userfields b ON b.fid = 20 AND a.uid = b.uid) LEFT JOIN ic1_userfields c ON c.fid = 21 AND a.uid = c.uid) WHERE a.fid = 19 ORDER BY b.val DESC LIMIT 0, 20

    Debug backtrace:
    @ mysql.php:32 -- debug_bt()
    @ mysql.php:50 -- db_check_error(...)
    @ charlist.php:21 -- db_query(...)
    @ index.php:24 -- require_once(...)


    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/html/web334/html/AllyHP/include/includes/func/db/mysql.php on line 58
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Oxe Mitglied
    Registriert seit
    09.08.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    Hm hat den keiner ne Idee ? Kann man das net auch als Box machen wäre es dann vielleicht einfacher ?
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Fire86 Mitglied
    Registriert seit
    25.04.2009
    Beiträge
    543
    Beitragswertungen
    0 Beitragspunkte
    Das kommt davon, wenn man ohne Ahnung am Code rumbastelt.:S
    Lass die php Datei, wie sie ist, bis auf das angesprochenen db_make_sites.
    Aussehen und Bezeichnungen musst du in der htm anpassen, nirgendwo anders.
    Kein Support per Email oder ICQ!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten