ilch Forum » Ilch Clan 1.1 » Allgemein » Abfrage in memb_list.php einbauen

Geschlossen
  1. #1
    User Pic
    kugelschubs Mitglied
    Registriert seit
    09.02.2006
    Beiträge
    83
    Beitragswertungen
    0 Beitragspunkte
    Hallo,

    ich habe bereits die SuFu benutzt aber nichts passendes gefunden.
    Und zwar möchte ich in die memb_list.php eine Abfrage einbauen ob in der Datenbank eine Homepage hinterlegt ist.

    also etwa so:
    if { Eintrag in Datenbank vorhanden ?
           echo '<a href="[homepage]"><img src="bild.jpg" border="0"></a>' } else { echo 'keine Homepage' }


    Bin absoluter php Noob, bitte um Nachsicht ^^

    meine aktuelle memb_list.php sieht so aus (schon etwas umgebaut):
    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' :: Gastgeberverzeichnis :: '.$lang['listofmembers'];
    $hmenu = $extented_forum_menu.'Gastgeberverzeichnis <b> &raquo; </b> '.$lang['listofmembers'].$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    $design->header();
    
    	$aftercheck = '';
    	if ( isset($row['homepage'])) {
    		$aftercheck = '<a href="'.$row['homepage'].'">hier</a>';
    	}
            else { $aftercheck = '---'; } 
    
    $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 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_grundrechte.name as recht_name,
      regist,
      prefix_user.avatar,
      prefix_user.sterne,
      prefix_user.gastro,
      prefix_user.wohnort,
      prefix_user.homepage,
      prefix_user.name
    FROM prefix_user
     LEFT JOIN prefix_grundrechte ON prefix_user.recht = prefix_grundrechte.id
     $sql_search
    WHERE prefix_user.recht = -2
    ORDER by sterne,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),
    									'BILD' => $row->avatar,
    									'HOMEPAGE' => $aftercheck,
    									'ORTSTEIL' => $row->wohnort,
    									'GASTRO' => $row->gastro,
    									'STERNE' => $row->sterne,
    									'GRUPE' => $row->recht_name
    	);
    	$tpl->set_ar_out($ar,1);
    }
    
    
    
    $erg2 = db_query("SELECT
      posts,
      prefix_user.id,
      prefix_grundrechte.name as recht_name,
      regist,
      prefix_user.avatar,
      prefix_user.sterne,
      prefix_user.gastro,
      prefix_user.wohnort,
      prefix_user.homepage,
      prefix_user.name
    FROM prefix_user
     LEFT JOIN prefix_grundrechte ON prefix_user.recht = prefix_grundrechte.id
     $sql_search
    WHERE prefix_user.recht = -1
    ORDER by name,prefix_user.posts DESC LIMIT ".$anfang.",".$limit);
    while ($row = db_fetch_object($erg2)) {
    
    	if ($class == 'Cmite') { $class = 'Cnorm'; } else { $class = 'Cmite'; }
    	$ar1 = 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),
    									'BILD' => $row->avatar,
    									'HOMEPAGE' => $aftercheck,
    									'ORTSTEIL' => $row->wohnort,
    									'GASTRO' => $row->gastro,
    									'STERNE' => $row->sterne,
    									'GRUPE' => $row->recht_name
    	);
    	$tpl->set_ar_out($ar1,1);
    }
    
    $tpl->set_out('filtername',$filtername ? $filtername : '',2);
    
    $design->footer();
    ?>


    Vielen Dank im Voraus für Eure Hilfe lächeln


    Zuletzt modifiziert von kugelschubs am 27.11.2010 - 12:12:11
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    kugelschubs Mitglied
    Registriert seit
    09.02.2006
    Beiträge
    83
    Beitragswertungen
    0 Beitragspunkte
    achso, so wie ich die Datei im Moment habe, funktioniert auch die Filterfunktion nicht:


    ZitatZitat
    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 'WHERE ic1_user.recht = -2 ORDER by sterne,ic1_user.posts DESC LIMIT 0,20' at line 15
    in Query:
    SELECT posts, ic1_user.id, ic1_grundrechte.name as recht_name, regist, ic1_user.avatar, ic1_user.sterne, ic1_user.gastro, ic1_user.wohnort, ic1_user.homepage, ic1_user.name FROM ic1_user LEFT JOIN ic1_grundrechte ON ic1_user.recht = ic1_grundrechte.id WHERE ic1_user.name LIKE '%test%' WHERE ic1_user.recht = -2 ORDER by sterne,ic1_user.posts DESC LIMIT 0,20

    Debug backtrace:
    @ mysql.php:32 -- debug_bt()
    @ mysql.php:50 -- db_check_error(...)
    @ memb_list.php:66 -- db_query(...)
    @ user.php:24 -- require_once(...)
    @ index.php:36 -- require_once(...)


    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/www/web33/html/include/includes/func/db/mysql.php on line 67
    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 'WHERE ic1_user.recht = -1 ORDER by name,ic1_user.posts DESC LIMIT 0,20' at line 15
    in Query:
    SELECT posts, ic1_user.id, ic1_grundrechte.name as recht_name, regist, ic1_user.avatar, ic1_user.sterne, ic1_user.gastro, ic1_user.wohnort, ic1_user.homepage, ic1_user.name FROM ic1_user LEFT JOIN ic1_grundrechte ON ic1_user.recht = ic1_grundrechte.id WHERE ic1_user.name LIKE '%test%' WHERE ic1_user.recht = -1 ORDER by name,ic1_user.posts DESC LIMIT 0,20

    Debug backtrace:
    @ mysql.php:32 -- debug_bt()
    @ mysql.php:50 -- db_check_error(...)
    @ memb_list.php:103 -- db_query(...)
    @ user.php:24 -- require_once(...)
    @ index.php:36 -- require_once(...)


    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/www/web33/html/include/includes/func/db/mysql.php on line 67



    Zuletzt modifiziert von kugelschubs am 27.11.2010 - 17:21:03
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    kugelschubs Mitglied
    Registriert seit
    09.02.2006
    Beiträge
    83
    Beitragswertungen
    0 Beitragspunkte
    das hier war mein eigener Versuch der aber nicht funzt:

    	$aftercheck = '';
    	if ( isset($row['homepage'])) {
    		$aftercheck = '<a href="'.$row['homepage'].'">hier</a>';
    	}
            else { $aftercheck = '---'; }


    wäre echt dankbar für eine Idee, hab die Vermutung das ich nah dran bin als Anfänger und nur das nötige Quentchen Können fehlt ^^


    Zuletzt modifiziert von kugelschubs am 27.11.2010 - 17:52:51
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    Du musst dein Code erst nach der Datenbankabfrage setzen, da ja sonst $row->hompage noch nicht ausgelesen wurde!
    rules :: doku :: faq :: linkus
    1 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    kugelschubs Mitglied
    Registriert seit
    09.02.2006
    Beiträge
    83
    Beitragswertungen
    0 Beitragspunkte
    Habs hinbekommen, danke an der stelle nochmal jihi für die Hilfe auch über ICQ, ide Funktion die ich haben wollte habe ich jetzt, musste es aber noch etwas ummodeln wie Du siehst.
    Danke auch Lord Schirmer, war genau der Denkanstoss den ich gebraucht habe.

    So sieht meine Datei jetzt aus:

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    $title = $allgAr['title'].' :: Gastgeberverzeichnis :: '.$lang['listofmembers'];
    $hmenu = $extented_forum_menu.'Gastgeberverzeichnis <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 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_grundrechte.name as recht_name,
      regist,
      prefix_user.avatar,
      prefix_user.sterne,
      prefix_user.gastro,
      prefix_user.wohnort,
      prefix_user.homepage,
      prefix_user.name
    FROM prefix_user
     LEFT JOIN prefix_grundrechte ON prefix_user.recht = prefix_grundrechte.id
     $sql_search
    WHERE prefix_user.recht = -2
    ORDER by sterne,prefix_user.posts DESC LIMIT ".$anfang.",".$limit);
    while ($row = db_fetch_object($erg)) {
    
    	if ($class == 'Cmite') { $class = 'Cnorm'; } else { $class = 'Cmite'; }
            if ( $row->homepage == "") {
            $row->homepage  = '-';
            }
            else { 
            $row->homepage  = '<a href="'.$row->homepage.'" target="_blank">
            <img src="include/images/play.png" border="0" alt="'.$row->homepage.'" title="'.$row->homepage.'"></a>'; 
            }
    	$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),
    									'BILD' => $row->avatar,
    									'HOMEPAGE' => $row->homepage,
    									'ORTSTEIL' => $row->wohnort,
    									'GASTRO' => $row->gastro,
    									'STERNE' => $row->sterne,
    									'GRUPE' => $row->recht_name
    	);
    	$tpl->set_ar_out($ar,1);
    }
    
    
    
    $erg2 = db_query("SELECT
      posts,
      prefix_user.id,
      prefix_grundrechte.name as recht_name,
      regist,
      prefix_user.avatar,
      prefix_user.sterne,
      prefix_user.gastro,
      prefix_user.wohnort,
      prefix_user.homepage,
      prefix_user.name
    FROM prefix_user
     LEFT JOIN prefix_grundrechte ON prefix_user.recht = prefix_grundrechte.id
     $sql_search
    WHERE prefix_user.recht = -1
    ORDER by name,prefix_user.posts DESC LIMIT ".$anfang.",".$limit);
    while ($row = db_fetch_object($erg2)) {
    	if ($class == 'Cmite') { $class = 'Cnorm'; } else { $class = 'Cmite'; }
            if ( $row->homepage == "") {
            $row->homepage  = '-';
            }
            else { 
            $row->homepage  = '<a href="'.$row->homepage.'" target="_blank">
            <img src="include/images/play.png" border="0" alt="'.$row->homepage.'" title="'.$row->homepage.'"></a>'; 
            }
    	$ar1 = 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),
    									'BILD' => $row->avatar,
    									'HOMEPAGE' => $row->homepage,
    									'ORTSTEIL' => $row->wohnort,
    									'GASTRO' => $row->gastro,
    									'STERNE' => $row->sterne,
    									'GRUPE' => $row->recht_name
    	);
    	$tpl->set_ar_out($ar1,1);
    }
    
    $tpl->set_out('filtername',$filtername ? $filtername : '',2);
    
    $design->footer();
    ?>


    und so sieht das Ergebnis aus:
    gesperrtes Bild

    Uploaded with ImageShack.us

    bleibt also nur noch der Fehler bei der Suche/Filterfunktion, kann mir da noch jemand bitte bei helfen?

    Gruss
    Peter


    Zuletzt modifiziert von kugelschubs am 28.11.2010 - 11:49:34
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    kugelschubs Mitglied
    Registriert seit
    09.02.2006
    Beiträge
    83
    Beitragswertungen
    0 Beitragspunkte
    kann mir BITTE noch jemand helfen mit der Filterfunktion ? lächeln
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten