ilch Forum » Allgemein » HTML, PHP, SQL,... » memb_list erweitern

Geschlossen
  1. #1
    User Pic
    Saarlonz Hall Of Fame
    Registriert seit
    07.08.2008
    Beiträge
    3.003
    Beitragswertungen
    235 Beitragspunkte
    Hallo Leute,

    Habe folgendes Problem.

    In der folgenden memb_list.php wurde die Suche schon so angepasst das sie nur bei genauer Schreibweise ein Ergebnis ausgibt.

    Jetzt bräuchte ich eine zweites Eingabe Feld wo ich zb. nur nach der genauen ICQ Nummer suchen kann.

    Name und ICQ werden später durch andere Werte ersetzt also das dient nur als Beispiel.

    Es geht auch nicht die Funktion OR, es muss ein seperates, unabhängiges Eingabefeld mit eigener sql Suche sein.

    Hoffe habe es verständlich erklärt.

    <?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/memb_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/memb_list.htm' );
    
    if(isset($_GET['filtername']) AND !empty($_GET['filtername'])){
      $filtername = escape($_GET['filtername'], 'string');
    }
    
    if(!empty($filtername)){
      $sql_search=" WHERE prefix_user.name = '".$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_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
        );
        $tpl->set_ar_out($ar,1);
    }
    $tpl->set_out('filtername',$filtername ? $filtername : '',2);
    
    $design->footer();
    ?>


    Bitte um Hilfe;)


    Zuletzt modifiziert von -saarlonz- am 18.12.2012 - 12:31:21
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    387 Beitragspunkte
    Äquivalent zu der Umsetzung mit dem Usernamen, du müsstest dann natürlich noch das Inputfeld mit Namen filtericq im Template anlegen.

    <?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/memb_list.htm' );
     
    if ($menu->exists('filtername')){
      $page = ($menu->getA(3) == 'p' ? $menu->getE(3) : 1 );
      $filtername = escape($menu->get(2), 'string');
    } elseif ($menu->exists('filtericq')){
      $page = ($menu->getA(3) == 'p' ? $menu->getE(3) : 1 );
      $filtericq = escape($menu->get(2), 'string');
    } else {
      $page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
    }
     
    $anfang = ($page - 1) * $limit;
     
    $tpl = new tpl ( 'user/memb_list.htm' );
     
    if (isset($_GET['filtername']) AND !empty($_GET['filtername'])){
      $filtername = escape($_GET['filtername'], 'string');
    } elseif (isset($_GET['filtericq']) AND !empty($_GET['filtericq'])){
      $filtericq = escape($_GET['filtericq'], 'string');
    }
     
    if (!empty($filtername)){
      $sql_search=" WHERE prefix_user.name = '".$filtername."'";
      $MPL = db_make_sites ($page , $sql_search , $limit , '?user-filtername-'.$filtername , 'user' );
    } elseif (!empty($filtericq)){
      $sql_search=" WHERE prefix_user.icq = '".$filtericq."'";
      $MPL = db_make_sites ($page , $sql_search , $limit , '?user-filtericq-'.$filtericq , '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_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
        );
        $tpl->set_ar_out($ar,1);
    }
    $tpl->set_out('filtername',$filtername ? $filtername : '',2);
     
    $design->footer();
    ?>



    Zuletzt modifiziert von Mairu am 19.12.2012 - 23:54:12
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Saarlonz Hall Of Fame
    Registriert seit
    07.08.2008
    Beiträge
    3.003
    Beitragswertungen
    235 Beitragspunkte
    Sehr gut, das klappt soweit.

    Vielen dank
    0 Mitglieder finden den Beitrag gut.
Geschlossen

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

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten