ilch Forum » Ilch Clan 1.1 » Allgemein » Unterschiede Postausgang DB-Abfrage

Geschlossen
  1. #1
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Moin zusammen,

    ich habe mir für unser Login-Panel eine Ausgabe zusammengebaut,
    die die Anzahl der PM's jeweils im Postausgang, Posteingang und Archiv anzeigt. Leider stimmt diese nicht mit der regulären Anzahl überein, wenn ich über Nachrichten->Postausgang mir diese anzeigen lasse.

    Meine Abfrage in der panel_login.php

    <?php 
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    global $ilchBB;
    
    // Farben & RangIcon
    $iconAdmin         = 'Admin';
    $iconCoAdmin       = 'CoAdmin';
    $iconSiteAdmin     = 'SiteAdmin';
    $iconLeader        = 'Leader';
    $iconCoLeader      = 'CoLeader';
    $iconMember        = 'Member';
    $iconTrialmember   = 'Trialmember';
    $iconSuperuser     = 'SuperUser';
    $iconUser          = 'User';
    $iconGast          = 'Gast';
    
    $tpl = new tpl ( 'user/panel_login.htm' );
    
    if ( loggedin() ) {
    	if ( user_has_admin_right($menu,false) ) {
    		$tpl->set ( 'ADMIN', '<a class="box" href="admin.php?admin">'.$lang['adminarea'].'</a>' );
    		$tpl->set ( 'ADMIN2', '<a href="admin.php?admin"><img src="include/designs/ilch_gs_template119/images/loginpanel/admin2.png" title="Adminbereich"></a>' );
    	} else {
    		$tpl->set ( 'ADMIN', '' );
    		$tpl->set ( 'ADMIN2', '' );
    	}
      
    	if ( $allgAr['Fpmf'] == 1 ) {
    		$erg = db_query("SELECT COUNT(id) FROM `prefix_pm` WHERE gelesen = 0 AND status < 1 AND eid = ".$_SESSION['authid']);
    		$check_pm = db_result($erg,0);
    		$nachrichten_link = '<a class="box" href="index.php?forum-privmsg">'.$lang['messages'].'</a>&nbsp;('.$check_pm.')<br>';
    	} else {
    		$nachrichten_link = '';
    	}
    		
    	$newTopicsCount = $ilchBB->getNewTopicsCount();
    	
    	$abf = db_query('SELECT recht, avatar, cname  FROM `prefix_user` WHERE id = "'.$_SESSION['authid'].'" ');
    	$row = db_fetch_assoc($abf);
    	$recht = $row['recht'];
    	$avatar = $row['avatar'];
    	$clan = '';
    	if (!empty($row['cname'])) {
    		$clan = $row['cname'];
    	}
    	
    	if      ($recht == -9) {$rangIcon = $iconAdmin;}
    	elseif  ($recht == -8) {$rangIcon = $iconCoAdmin;}
    	elseif  ($recht == -7) {$rangIcon = $iconSiteAdmin;}
    	elseif  ($recht == -6) {$rangIcon = $iconLeader;}
    	elseif  ($recht == -5) {$rangIcon = $iconCoLeader;}
    	elseif  ($recht == -4) {$rangIcon = $iconMember;}
    	elseif  ($recht == -3) {$rangIcon = $iconTrialmember;}
    	elseif  ($recht == -2) {$rangIcon = $iconSuperuser;}
    	elseif  ($recht == -1) {$rangIcon = $iconUser;}    
    	else    {$rangIcon = $iconGast;}
    	
    	$res = db_query('SELECT id, sid, eid, status, archiv FROM `prefix_pm` WHERE eid = '.$_SESSION['authid'].' OR sid = '.$_SESSION['authid']);
        $r = db_fetch_assoc($res);
        $anz_ges = 0;
        $anz_ib = 0;
        $anz_ob = 0;
        $anz_arch = 0;
        
        while ($r = db_fetch_assoc($res)) {
            if ($r['eid'] == $_SESSION['authid'] AND $r['status'] <= 0 AND $r['archiv'] % 2 == 0) {
                $anz_ib++;
            }
            if ($r['sid'] == $_SESSION['authid'] AND $r['status'] >= 0 AND $r['archiv'] < 2) {
                $anz_ob++;
            }
            if ($r['archiv'] != 0) {
                $anz_arch++;
            }
    		$anz_ges++;
        }
    	
    	$tpl->set ( 'SID' , session_id() );
    	$tpl->set ( 'NACHRICHTEN' , $nachrichten_link );
    	$tpl->set ( 'MCOUNT' , $check_pm );
    	$tpl->set ( 'pnr' , $newTopicsCount );
    	$tpl->set ( 'NAME', $_SESSION['authname'] );
    	$tpl->set ( 'STATUS', $rangIcon );
    	$tpl->set ( 'NAME', $_SESSION['authname'] );
    	$tpl->set ( 'AVATAR', $avatar );
    	$tpl->set ( 'uid' , $_SESSION['authid'] );
    	$tpl->set ( 'CLAN' , $clan );
    	$tpl->set ( 'INBOX' , $anz_ib );
    	$tpl->set ( 'OUTBOX' , $anz_ob );
    	$tpl->set ( 'ARCHIV' , $anz_arch );
    	$tpl->set ( 'PM' , $anz_ges );
        $tpl->out (0);
    } else {
      if (empty($_POST['login_name'])) { $_POST['login_name'] = 'Nickname'; }
    	if (empty($_POST['login_pw'])) { $_POST['login_pw'] = 'ääääääää'; }
    	$regist = '';
    	if ( $allgAr['forum_regist'] == 1 ) {
    	  $regist = ' &nbsp; &nbsp; <a href="index.php?user-regist">Regist</a>';
    	}
    	$tpl->set_ar_out ( array ( 'regist' => $regist, 'wdlink' => '?'.$allgAr['smodul'], 'PASS' => $_POST['login_pw'], 'NAME' => $_POST['login_name'] ) , 1 );
    }
    unset($tpl);
    ?>

    Ich habe jetzt mal zum Testen alle Nachrichten in der DB gelöscht und eine neue an einen User geschickt. Ergebnis, es werden mir mit obiger Abfrage Null Nachrichten im Postausgang angezeigt (tatsächlich ist diese aber im Postausgang vorhanden).
    gesperrtes Bild
    Könnte mir bitte jemand bei dem Problem helfen?
    Danke!


    Zuletzt modifiziert von Outi77 am 25.10.2013 - 07:06:04
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    In Zeile 63 wird die erste Ergebniszeile abgerufen, aber nicht verwendet. Dann wird in der while Schleife sozusagen mit der 2. Ergebniszeile begonnen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Outi77 Mitglied
    Registriert seit
    31.03.2013
    Beiträge
    1.337
    Beitragswertungen
    143 Beitragspunkte
    Hey Mairu, wie immer ist auch hier wieder voll Verlass auf Dich!
    Funktioniert natürlich bestens...ganz offiziellen Dank für Deine Hilfe zunge

    P.S.: Die Funktion "Beitrag gut finden" funktioniert nicht...

    -erledigt-


    Zuletzt modifiziert von Outi77 am 25.10.2013 - 09:43:55
    Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
    »Albert Einstein«
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten