ilch Forum » Allgemein » HTML, PHP, SQL,... » Userliste erweitert Ausgabe begrenzen

Geschlossen
  1. #1
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Leute,

    ich habe die Datei "meber_list.php" um die Zeilen mit "Vorstand" erweitert und die Datenbank in der Tabelle "ic1_user" um die Spalte "vorstand" erweitert.
    member_list.php
    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' :: User :: '.$lang['listofmembers'];
    $hmenu = $extented_forum_menu.'User <b> &raquo; </b> '.$lang['listofmembers'].$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    $design->header();
    
    $limit = 20;  // Limit
    
    
    $tpl = new tpl ( 'user/vorstand_list.htm' );
    
    if($menu->exists('filtername')){
      $page = ($menu->getA(3) == 'p' ? $menu->getE(3) : 1 );
      $filtername = escape($menu->get(2), 'string');
    }else{
      $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
    }
    
    $anfang = ($page - 1) * $limit;
    
    $tpl = new tpl ( 'user/vorstand_list.htm' );
    
    if(isset($_GET['filtername']) AND !empty($_GET['filtername'])){
      $filtername = escape($_GET['filtername'], 'string');
    }
    
    if(!empty($filtername)){
      $sql_search=" WHERE prefix_user.name LIKE '%".$filtername."%'";
      $MPL = db_make_sites ($page , $sql_search , $limit , '?user-filtername-'.$filtername , 'user' );
    }else{
      $sql_search="";
      $MPL = db_make_sites ($page , "" , $limit , '?user' , 'user' );
    }
    
    $tpl->set_out ( 'SITELINK', $MPL, 0);
    
    $class = '';
    $erg = db_query("SELECT
      posts,
      prefix_user.id,
      prefix_user.vorstand,  /* Hier eingefuegt Vorstand */
      prefix_grundrechte.name as recht_name,
      regist,
      prefix_user.name
    FROM prefix_user
     LEFT JOIN prefix_grundrechte ON prefix_user.recht = prefix_grundrechte.id
     $sql_search
    ORDER by recht,prefix_user.posts DESC LIMIT ".$anfang.",".$limit);
    while ($row = db_fetch_object($erg)) {
    
    	if ($class == 'Cmite') { $class = 'Cnorm'; } else { $class = 'Cmite'; }
    	$ar = array ( 'NAME' => $row->name,
    	                'RANG' => userrang($row->posts,$row->id),
    									'CLASS' => $class,
    									'POSTS' => $row->posts,
    									'UID'   => $row->id,
    									'DATE' => date('d.m.Y',$row->regist),
    									'GRUPE' => $row->recht_name,
    									'VORST' => $row->vorstand
    	);
    	$tpl->set_ar_out($ar,1);
    }
    $tpl->set_out('filtername',$filtername ? $filtername : '',2);
    
    $design->footer();
    ?>

    Als Ausgabe habe ich die Datei "vorstand_list.htm"
    <table width="100%" border="0" cellpadding="3" cellspacing="1" class="border">
      <tr class="Chead" >
        <th height="30" width="20%">{_lang_name}</th>
        <th width="10%" align="center">{_lang_vorstand}</th>
    		<th align="center" width="20%">{_lang_rank}</th>
    		<th align="center" width="20%">{_lang_group}</th>
    		<th width="15%">{_lang_regtime}</th>
    		<th width="15%" align="center">{_lang_posts}</th>
      </tr>{EXPLODE}<tr class="{CLASS}">
        <td><a href="index.php?user-details-{UID}">{NAME}</a></td>
        <td align="center">{VORST}</td>
    		<td align="center"><font style="font-size: 10px">{RANG}</font></td>
    		<td align="center">{GRUPE}</td>
    		<td>{DATE}</td>
    		<td align="center">{POSTS}</td>
      </tr>{EXPLODE}
    </table>
    <br />
    <div align="center">{SITELINK}
    <form method="GET" action="index.php"><input type="hidden" name="user" value="" /><input type="text" name="filtername" size="15" value="{filtername}" /> <input type="submit" value="{_lang_filter}" /></form>
    </div>

    Meine Frage: Was muss ich ändern damit nur User angezeigt werden die in der Spalte "vorstand" auch einen Eintrag haben.

    Vielen Dank im Vorraus
    MfG heinz2


    verwendete ilch Version: 1.1 P

    betroffene Homepage: fischerfreunde-haimhausen.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    eine if else anweisung hinzufügen würde dein problem lösen hier mal beispiele www.php-einfach.de/php-tutorial/php-if-anweisung.php

    $vorstand = 1;
    
    if ( $vorstand == 1 ) {
    	echo "Dieser User ist im Vorstand";
    } else {
    	echo "Dieser User ist ein nobody";
    }


    um das ganze auch nochmal zu erklären

    if(Bedingung)
       {
       Anweisung
       }
    else
       {
       Anweisung
       }


    Natürlich musst du halt den wert aus der DB auslesen lassen, solte nur als ansporn gelten zwinker


    Zuletzt modifiziert von Nex4T am 01.04.2015 - 21:56:47
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo,

    war längere Zeit abwesend und melde mich wieder.
    Frage: die if und else Anweisungen weis ich nicht wo ich die einbauen soll. Was ich probiert habe funktioniert nicht. Nächst Frage: Wenn ich nur die Datensätze auslesen lassen will bei denen der Eintrag Vorstand auch einen Eintrag hat und alle anderen ignoriert werden, wie stelle ich das an und was muss ich bei der Spalte in der Datenbank beachten?

    MfG heinz
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Also im endeffekt müsstest du in der DB ic1_user eine neue Spalte mit dem namen vorstand erstellen wo erstmal nichts drin steht - VARCHAR 100,
    Danach öffnest du mit einem Programm deiner Wahl die datei:

    include/contents/user/user_details.php

    fügst nach Zeile 33 diesen code hinzu

    'VORSTAND' => $row['vorstand'],


    anschließend gehst du in die Datei include/templates/user/user_details.htm

    und fügst {VORSTAND} dort hin wo du es später haben möchtest ich habe es einfach nur mal neben dem Namen gesetzt um es zu testen.

    Mehr ist das ganze eig. Nicht!

    Das hier ist lediglich eine Ausgabe der daten von der Datenbank du müsstest das ganze also Manuel in der DB immer eintragen wer im "vorstand" ist und wer nicht, als Standart wert ist ja sowieso nichts drin!

    Man könnte ja noch die möglichkeit offen lassen es immer vom adminmenü aus zu bearbeiten. Müsste man halt nur anpassen


    Zuletzt modifiziert von Nex4T am 21.04.2015 - 08:38:16
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Nex4T,
    in ähnlicher Form hat das ja schon funktioniert. Ich hatte das Modul mit den Usern hergenommen. Habe in der Tabelle ic1_user die Spalte vorstand eingefügt mit varchar 50. Habe dann die Datei include/contens/user/member_list.php kopiert und umbenannt, dazu die Ausgabedatei include/templates/user/member_list.htm kopiert und umbenannt und die passenden Einträge gemacht (wie Du in den obigen Codes ja sehen kannst). Das haut hin es werden die User ausgegeben. Ich bekam auch die Spalte Vorstand angezeigt, Aber es werden alle User angezeigt. Auch die die keinen Eintrag in der Spalte Vorstand haben. Das wollte ich nicht. Es sollten nur die User angezeigt werden die eben in der Spalte Vorstand einen Eintrag haben. Ich habe auch schon versucht über eine erstellte Tabelle Vorstand mit der Tabelle User mittels join zu verbinden. Auch ohne Erfolg (kamen nur Fehler). Nun stehe ich da mit meinen wenigen Kenntnissen. Kannst Du mir einen Hinweis geben wo ich die if und else-Anweisung, die von Dir oben beschrieben, einfügen kann, damit es funktioniert. 7

    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Dann mach doch einfach eine Abfrage wer den Wert vorstand hat und lass diese dann ausgeben. Hab gerade noch besuch hier wenn du es selbst nicht schaffst dann gucke ich später mal lächeln Da du das ganze ja versucht hast währe es bestimmt hilfreicher gewesen die Fehlermeldung zuposten.


    Zuletzt modifiziert von Nex4T am 22.04.2015 - 08:26:22
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Nex4T,
    habe mein Problem gelöst. Habe mich belesen dann einfach alles gelöscht. Dann noch mal von vorne angefangen, was soll ich sagen: es funktioniert wie es soll. Habe es über Tabellenverbindungen gelöst. Jetzt nur noch Design anpassen.
    Kann geschlossen werden.
    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Ja Freut mich das dein Problem gelöst ist. Wenn du hilfe beim Design anpassen brauchst sag mir bescheid zwinker
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Hallo Nex4T,
    eine Frage hätte ich doch noch: Wo kann ich der Pfad der include/templates/user/userdatails.htm auf include/templates/vorst/userdatails.htm ändern?
    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    FeTTsack Hall Of Fame
    Registriert seit
    27.06.2012
    Beiträge
    188
    Beitragswertungen
    26 Beitragspunkte
    in der dazugehörigen php

    include/contents/user/user_details.php

    dort nach dieser Zeile suchen:
    $tpl = new tpl ( 'user/userdetails' );


    und für deine Wünsche anpassen lächeln
    bei dir:
    $tpl = new tpl ( 'vorst/userdatails' );


    Achtung: du hast userdAtails geschrieben.
    bin mir nicht sicher ob die Datei bei dir so heist lächeln

    lg
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    heinz2 Mitglied
    Registriert seit
    05.10.2013
    Beiträge
    167
    Beitragswertungen
    2 Beitragspunkte
    Danke für den Hinweis. Nun kann ich die Vorstandsseite anpassen. Ich habe das Verzeichnids vorst unter contens und templates. angelegt. Leider finde ich im Adminbereich in der Navigation unter Menüpunkt wahl meine vorst.php nicht, nur wenn ich sie im Verzeichnis contens ablege. Da wird sie gefunden. Wo sollte ich noch was eintragen?

    MfG heinz2
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Genau so solte es auch sein zwinker
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
Geschlossen

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

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten