ilch Forum » Allgemein » HTML, PHP, SQL,... » Profilfeld in Teamliste anzeigen

Geschlossen
  1. #1
    User Pic
    Revo Mitglied
    Registriert seit
    27.02.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    Hallo,

    ich würde gerne in meiner Teamliste anstatt ICQ/Nation etc. lieber
    "Ingamenick" und "Klasse" haben.
    Nachdem ich mich per SuFu ein bischen schlau gemacht hab muss ich für jedes Profilfeld eine neue Varbiable anlegen (?)
    Ich hab mir teams.htm und teams.php angeguckt dort gibt es ja immer {xxx}. Meine Frage ist gibt es solche Deklarationen schon für meine Profilfelder, wenn ja wie finde ich sie heraus und wenn nein wie erstelle ich welche.



    Hier war sowas ähnliches ich habs nur nich ganz verstanden sauer
    www.ilch.de/forum-showposts-15998.html#100715

    betroffene Homepage: noxaeterna.no.ohost.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Nenne doch einfach die Felder in den Templates zu dem was du willst, die Variablen namen stimmen zwar nicht ganz dessen name zusammen aber wen störts sieht ja eh keiner ^^
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    EDIT: So alles neu hier zwinker

    Um solche Variablen anzulegen, die man dann im Template mit {xxx} einfügen kann, was ja nicht so schwer sein sollte (wird hier also nicht beschrieben) muss man halt die contents/teams.php etwas erweitern.

    Zuerstmal muss man die ID des bzw. der Felder herausfinden, die man hinzufügen will, dazu mit phpmyadmin die Tabelle prefix_profilefields öffnen und sich die IDs merken.

    Abfrage in der Teams.php ändern also nach
    $q = "SELECT b.uid, a.icq, a.avatar, a.status, a.name, c.name as posi, staat FROM prefix_groupusers b LEFT JOIN prefix_user a ON a.id = b.uid LEFT JOIN prefix_groupfuncs c ON b.fid = c.id WHERE b.gid = ".$gid." ORDER BY c.pos ASC, a.name ASC";


    suchen und wie folgt die Felder einfügen, das Beispiel ist für 2 Felder, wobei natürlich auch die richtige ID (also die Zahl, anstatt von ID bzw ID2) verwendet werden muss.

    	$q = "SELECT b.uid, a.icq, a.avatar, a.status, a.name, c.name as posi, staat, uf1.val AS feld1, uf2.val AS feld2
    			FROM prefix_groupusers b
    			LEFT JOIN prefix_user a ON a.id = b.uid
    			LEFT JOIN prefix_groupfuncs c ON b.fid = c.id
    			LEFT JOIN prefix_userfields uf1 ON a.id = uf1.uid AND uf1.fid = ID
     			LEFT JOIN prefix_userfields uf2 ON a.id = uf2.uid AND uf2.fid = ID2
    		WHERE b.gid = ".$gid." ORDER BY c.pos ASC, a.name ASC";


    Danach könntest du die Variablen {feld1} und {feld2} verwenden, wobei du die natürlich auch in der Abfrage anders nennen kannst.

    Du kannst natürlich auch sowas benutzen (in der teams.php mit [] und nicht dem -> )
    if ( $row['feld1'] == '' ) {
                $row['feld1'] = 'n/a';
            }
    um n/a statt einem leeren Feld zu haben.


    Zuletzt modifiziert von Mairu am 01.03.2009 - 08:46:03
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Revo Mitglied
    Registriert seit
    27.02.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    Ah vielen Dank hab alles eingefügt bin aber allerdings bei der teams.php ! nich wirklich am durchblicken lachen

    Ich hatte zwar 2 Jahre Java in der Schule, aber das verwirrt mich da eher noch mehr sauer

    Also im Moment steht in den entsprechenden Feldern nur {FELD1} und {FELD2} weil ich zu der teams.php noch Fragen hab.

    Und zwar muss ich diese Felder am Anfang auch deklarieren? also ich mein das
     $q = "SELECT b.uid, a.icq, a.avatar, a.status, a.name, c.name as posi, staat FROM prefix_groupusers b LEFT JOIN prefix_user a ON a.id = b.uid LEFT JOIN prefix_groupfuncs c ON b.fid = c.id WHERE b.gid = ".$gid." ORDER BY c.pos ASC, a.name ASC";


    muss ich da sowas wie feld1 oder uf.feld1 einfügen (sorry hab das noch nie bei php Dateien gemacht)

    Und wäre das hier dann richtig?

    if ( $row['feld1'] != '' ) {
                            $row['feld1'] = $feld1;
                    } else {
                $row['feld1'] = 'n/a';
            }

    Oder statt

    $row['feld1'] = $feld1;

    $row['feld1'] = $row->feld2;

    Danke schonmal im vorraus lachen
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    Ich bin ja so blöd, naja in der Teamliste ist die Abfrage und so natürlich etwas anders, ich ändere mal den Beitrag dementsprechend.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Revo Mitglied
    Registriert seit
    27.02.2009
    Beiträge
    6
    Beitragswertungen
    0 Beitragspunkte
    Aaaahh


    VIELEN DANK ! lächelnlächelnlächeln


    Klappt jetzt zu meiner vollen Zufriedenheit lachen
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    DK|Nemesis Mitglied
    Registriert seit
    12.03.2009
    Beiträge
    43
    Beitragswertungen
    0 Beitragspunkte
    Hallo glücklich ich probier zurzeit auch in der Team Anzeige mehrere Profilfelder einzufügen aber ich komme nicht so ganz weiter.

    	$q = "SELECT b.uid, a.icq, a.avatar, a.status, a.name, c.name as posi, staat, uf1.val AS USERTITEL, uf2.val AS WOHNORT
                FROM prefix_groupusers b
                LEFT JOIN prefix_user a ON a.id = b.uid
                LEFT JOIN prefix_groupfuncs c ON b.fid = c.id
                LEFT JOIN prefix_userfields uf1 ON a.id = uf1.uid AND uf1.fid = 14
                 LEFT JOIN prefix_userfields uf2 ON a.id = uf2.uid AND uf2.fid = 6
            WHERE b.gid = ".$gid." ORDER BY c.pos ASC, a.name ASC";


    ich will z.b. wohnort und den rang status ( admin usw.. ) einfügen, ich denke soweit ist es auch richtig ? Ich muss nämlich sagen das ich mit den ID's net so richtig verstehe welche ID's du genau meinst ?



    meinst du diese ?

    Fals ja was habe ich dan falsch gemacht ?

    $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    		$row['class'] = $class;
            if ( $row['staat'] != '' ) {
    			$row['staat'] = '<img src="include/images/flags/'.$row['staat'].'" alt="" border="0">';
    		} else {
                $row['staat'] = 'n/a';
            }		
    		if ( $row['WOHNORT'] == '6' ) {
                $row['WOHNORT'] = 'n/a';
            }
    		$row['status'] = ($row['status']? 'aktiv' : 'inaktiv' );
    		if(!empty($row['icq'])){


    ich komme da nicht so ganz weiter =/ eine kleine hilfe wär echt toll glücklich


    Zuletzt modifiziert von DK|Nemesis am 19.04.2009 - 02:48:28
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    Ja das ist die richtige Id, allerdings ist der Wohnort ja ein Feld, was direkt in der prefix_user Tabelle steht und nicht erst im Adminbereich angelegt wurde, demzufolge kannst in der Abfrage einfach wohnort in der Liste hinter dem SELECT hinzufügen und dann sollte es dabei sein, weiter wäre der Wohnort nicht wirklich 6 sondern null, falls keiner was eingetragen hätte, zumindest wenn es ein neues Feld wäre, so ist es einfach leer, wenn jemand nix eingetragen hat.

    Naja wegen Grundrecht fasse ich es dir mal zusammen in einer Abfrage.

    $q = "SELECT b.uid, a.icq, a.avatar, a.status, a.name, c.name as posi, a.staat, a.wohnort, gr.name AS grundrecht
                FROM prefix_groupusers b
                INNER JOIN prefix_user a ON a.id = b.uid
                LEFT JOIN prefix_groupfuncs c ON b.fid = c.id
                LEFT JOIN prefix_grundrechte gr ON a.recht = gr.id
            WHERE b.gid = ".$gid." ORDER BY c.pos ASC, a.name ASC";



    Zuletzt modifiziert von Mairu am 19.04.2009 - 19:26:04
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    DK|Nemesis Mitglied
    Registriert seit
    12.03.2009
    Beiträge
    43
    Beitragswertungen
    0 Beitragspunkte
    grundrecht ? ähm wofür ?
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    ZitatZitat
    ich will z.b. wohnort und den rang status ( admin usw.. ) einfügen,
    hatte ich jetzt gedacht, du meinst das Grundrecht.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    DK|Nemesis Mitglied
    Registriert seit
    12.03.2009
    Beiträge
    43
    Beitragswertungen
    0 Beitragspunkte
    achso ja stimmt ^^ ganz vergessen.

    hmm funkitioniert blos nicht =/

    wenn ich es einfüge also das grundrecht kommt diese fehler meldung.

    MySQL Error:
    1054 : Unbekanntes Tabellenfeld 'gr1.id' in on clause
    in Query:
    SELECT b.uid, a.icq, a.avatar, a.status, a.name, c.name as posi, a.staat, a.wohnort, a.gebdatum, a.gmapkoords FROM ic1_groupusers b INNER JOIN ic1_user a ON a.id = b.uid LEFT JOIN ic1_groupfuncs c ON b.fid = c.id LEFT JOIN ic1_grundrechte gr ON a.recht = gr1.id WHERE b.gid = 3 ORDER BY c.pos ASC, a.name ASC
    
    Debug backtrace:
    	@ mysql.php:32 -- debug_bt()
    	@ mysql.php:50 -- db_check_error(...)
    	@ teams.php:19 -- db_query(...)
    	@ teams.php:87 -- show_members(...)
    	@ index.php:25 -- require_once(...)
    
    
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/web424/html/dkclan/v6/ilch/include/includes/func/db/mysql.php on line 71


    eine frage hätte ich noch. ich habe

    <a href="index.php?user-usergallery-{UID}">ansehen</a>


    in team.htm eingefügt. aber er findet nicht den link zur usergallery sondern den zur sammelstelle der gallerien. Was müsste ich den in der team.php rein tun damit er die UID findet ?


    Zuletzt modifiziert von DK|Nemesis am 19.04.2009 - 19:03:24
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.254
    Beitragswertungen
    366 Beitragspunkte
    Du musst {uid} verwenden, also klein schreiben, bei dem anderen war ich so klug einmal gr und einmal gr1 zu schreiben, deswegen der Fehler, hab den Code angepasst, ansonsten war einfach die 1 hinter gr zuviel.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    DK|Nemesis Mitglied
    Registriert seit
    12.03.2009
    Beiträge
    43
    Beitragswertungen
    0 Beitragspunkte
    noja die klugen triffts immer ^^ ich probiers nacher mal aus. danke aber schonmal glücklich
    0 Mitglieder finden den Beitrag gut.
Geschlossen

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

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten