ilch Forum » Ilch Clan 1.1 » Allgemein » Last-Forum Box spezialisieren

Geschlossen
  1. #1
    User Pic
    Pluisiplui Mitglied
    Registriert seit
    09.03.2011
    Beiträge
    5
    Beitragswertungen
    0 Beitragspunkte
    Hey Community,

    ich wollte mal nachfragen ob es die Möglichkeit gibt die Last-Forum Box so zu bearbeiten das Sie nur Beiträge aus einer bestimmten Kategorie anzeigt und nicht aus dem gesamten Forum.

    Wenn ja könnte jemand so Nett sein und mir sagen wo ich das einstellen bzw. ändern kann?

    1000 Dank.

    Pluisi

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    she Mitglied
    Registriert seit
    13.11.2010
    Beiträge
    1.115
    Beitragswertungen
    82 Beitragspunkte
    <?php 
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    $query = "SELECT a.id, a.name, a.rep, c.erst as last, c.id as pid, c.time
    FROM prefix_topics a
      LEFT JOIN prefix_forums b ON b.id = a.fid
      LEFT JOIN prefix_forumcats F ON F.id = b.cid
      LEFT JOIN prefix_posts c ON c.id = a.last_post_id
      LEFT JOIN prefix_groupusers vg ON vg.uid = ".$_SESSION['authid']." AND vg.gid = b.view
      LEFT JOIN prefix_groupusers rg ON rg.uid = ".$_SESSION['authid']." AND rg.gid = b.reply
      LEFT JOIN prefix_groupusers sg ON sg.uid = ".$_SESSION['authid']." AND sg.gid = b.start
    WHERE ((".$_SESSION['authright']." <= b.view AND b.view < 1) 
       OR (".$_SESSION['authright']." <= b.reply AND b.reply < 1)
       OR (".$_SESSION['authright']." <= b.start AND b.start < 1)
             OR vg.fid IS NOT NULL
             OR rg.fid IS NOT NULL
             OR sg.fid IS NOT NULL
             OR -9 >= ".$_SESSION['authright']."
             AND F.cid IS NOT 'HIERDEINEID')
    ORDER BY c.time DESC
    LIMIT 0,5";
    echo '<table>';
    $resultID = db_query($query);
    while ($row = db_fetch_assoc($resultID)) {
            $row['date'] = date('d.m.y - H:i',$row['time']);
            $row['page'] = ceil ( ($row['rep']+1)  / $allgAr['Fpanz'] );
      echo '<tr><td valign="top"><b> &raquo; </b></td><td><a href="?forum-showposts-'.$row['id'].'-p'.$row['page'].'#'.$row['pid'].'" title="'.$row['date'].'">'.((strlen($row['name'])<18) ? $row['name'] : substr($row['name'],0,15).'...').'<br /><span class="smalfont"> von '.$row['last'].'</span></a></td></tr>';
    }
    echo '</table>';
    ?>


    'HIERDEINEID' Bitte dort deine durchsuchende KategorieID eingeben.

    Ungetestet. Weiß nicht obs klappt.
    Google+ shelfinger.eu
    Das Wissen verfolgt mich - doch ich bin schneller!
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Ich habe es nun auch nicht getestet, aber ... "IS NOT" gerade diese kategorie wird nicht gelistet soweit ich das sehe?

    wenn ich es nicht falsch verstanden habe...

    F.cid = 'deinID' denn oder F.cid IN( id, id, id, ...) um mehr kate anzuzeigen


    Zuletzt modifiziert von Balthazar3k am 11.03.2011 - 14:08:38
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    she Mitglied
    Registriert seit
    13.11.2010
    Beiträge
    1.115
    Beitragswertungen
    82 Beitragspunkte
    Jo Denk Fehler....

    Natürlich muss es F.cid = 'HIERDEINEID' heißen....
    Google+ shelfinger.eu
    Das Wissen verfolgt mich - doch ich bin schneller!
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Pluisiplui Mitglied
    Registriert seit
    09.03.2011
    Beiträge
    5
    Beitragswertungen
    0 Beitragspunkte
    Hatte leider noch keine Chance es zu testen, das mein Wochenende etwas chaotisch war!

    Aber noch ganz kurz:

    Die ID kann aus dem Adminbereich übernehmen? Also S1?
    Oder muss ich mir die aus der Datenbank ziehen lächeln

    Danköö lächeln
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    she Mitglied
    Registriert seit
    13.11.2010
    Beiträge
    1.115
    Beitragswertungen
    82 Beitragspunkte
    die ID ist ohne S also aus der Datenbank ziehen.
    Google+ shelfinger.eu
    Das Wissen verfolgt mich - doch ich bin schneller!
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    das ganze kann man doch sicher auch mit dem Tabellenfeld art aus prefix_topics machen.

    ich habs probiert aber mit

    AND art


    gehts nicht. muss ja irgentwo noch abfragen ob 1 oder 0 is und wenn 1 dann ausgeben richtig? Also ne komplexere if abfrage. Oder denke ich falsch?


    Zuletzt modifiziert von Chester am 27.03.2011 - 01:39:23
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    keiner ne idee?
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ne du denkst falsch, in der SQL Abfrage wird ja dann einfach nur die Kategorie eingeschränkt, es kommen also weniger Ergebnisse an, an der sonstigen Ausgabe bzw. Abfrage ändert sich nichts.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    1 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    wie in der abfrage ändert sich nichts? ich muss sie ja bischen umbauen oder nicht?

    Ich will ja keine Forenkategorien anzeigen lassen sondern gestickte Themen.

    Wie mach ich das denn da?
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Achso, du hast ein anderes Thema angeschnitten, dann musst du das wohl ausführlicher beschrieben, wenn es lediglich um die Auswahl selbst geht und nicht um andere grafische Anpassungen reicht es in der SQL Abfrage.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    Ok ich beschreibs mal bischen genauer:

    Im Forum kann man Themen als "Feste Themen" markieren. Ich möchte in meiner Forenbox nur die Beiträge anzeigen lassen die als fest markiert wurden.

    Man sagte mit das, dass tabellen Feld "art" in der prefix_topics anzeigt das ein thema fest ist.

    Nun muss ich ja abfragen:

    Ist das Thema fest?

    JA: 1 = Ausgeben

    Nein: 0 = nix machen
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Dann reicht es einfach in der sql abfrage art = 1 zu beschränken.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    wo genau? Nach SELECT?
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Nein es ist ja eine Bedingung und kommt damit hinter WHERE, allerdings muss ja auch mit den anderen Bedingungen zusammenarbeiten, also wenn du oben die Abfrage nimmst, siehst du ja
            OR -9 >= ".$_SESSION['authright']."
            AND F.cid IS NOT 'HIERDEINEID')
    also wo etwas eingefügt worden ist und genau an der gleichen Stelle kannst du das mit dem art auch einfügen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    AND art  = 1)


    geht auf jedenfall nicht
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Stimmt es muss
    ) AND art = 1
    sein, sollte für f.cid auch gelten, also eigentlich sollte das Beispiel oben nicht funktionieren.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    Ja. nun geht es. nur muss ich bei meiner normalen box noch "art" auschließen. mit IS NOT geht es nicht.

    was ist denn der gegensatz von = ?

    EDIT: Fail ja habs schon lachen


    Zuletzt modifiziert von Chester am 30.03.2011 - 20:26:23
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    BAMBOIHH Mitglied
    Registriert seit
    22.05.2008
    Beiträge
    221
    Beitragswertungen
    23 Beitragspunkte
    !=
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    blackbulls Mitglied
    Registriert seit
    21.11.2008
    Beiträge
    62
    Beitragswertungen
    0 Beitragspunkte
    Hallo

    muss das Thema mal eben aufgreifen, weil ich es versucht habe und es hat nicht geklappt.

    Ich würde es gern so haben wie ganz oben beschrieben.
    Also eine Box, die nur nur die Posts einer bestimmten Kategorie ausgibt. In dem Fall ist die Kateogorie Marktplatz->Biete die als ID 45 in der SQL Datenbank eingetragen ist.

    Leider zeigt mir die Box folgendes an, anstatt der letzten 5 Posts.

    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 'ORDER BY c.time DESC LIMIT 0,5' at line 17
    in Query:
    SELECT a.id, a.name, a.rep, c.erst as last, c.id as pid, c.time FROM ic2_topics a LEFT JOIN ic2_forums b ON b.id = a.fid LEFT JOIN ic2_forumcats F ON F.id = b.cid LEFT JOIN ic2_posts c ON c.id = a.last_post_id LEFT JOIN ic2_groupusers vg ON vg.uid = 1 AND vg.gid = b.view LEFT JOIN ic2_groupusers rg ON rg.uid = 1 AND rg.gid = b.reply LEFT JOIN ic2_groupusers sg ON sg.uid = 1 AND sg.gid = b.start WHERE ((-9 <= b.view AND b.view < 1) OR (-9 <= b.reply AND b.reply < 1) OR (-9 <= b.start AND b.start < 1) OR vg.fid IS NOT NULL OR rg.fid IS NOT NULL OR sg.fid IS NOT NULL OR -9 >= -9 AND F.cid = '45' ORDER BY c.time DESC LIMIT 0,5

    Debug backtrace:
    @ mysql.php:32 -- debug_bt()
    @ mysql.php:50 -- db_check_error(...)
    @ marktplatz.php:26 -- db_query(...)
    @ design.php:332 -- require_once(...)
    @ design.php:254 -- design->get_boxcontent(...)
    @ design.php:46 -- design->get_boxes(...)
    @ show_cat.php:11 -- design->design(...)
    @ forum.php:129 -- require_once(...)
    @ index.php:24 -- require_once(...)



    Was ist da jetzt falsch ???

    Hier mal schnell die Box... habs gemacht, wie beschrieben.

    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    $query = "SELECT a.id, a.name, a.rep, c.erst as last, c.id as pid, c.time
    FROM prefix_topics a
     LEFT JOIN prefix_forums b ON b.id = a.fid
     LEFT JOIN prefix_forumcats F ON F.id = b.cid
     LEFT JOIN prefix_posts c ON c.id = a.last_post_id
     LEFT JOIN prefix_groupusers vg ON vg.uid = ".$_SESSION['authid']." AND vg.gid = b.view
     LEFT JOIN prefix_groupusers rg ON rg.uid = ".$_SESSION['authid']." AND rg.gid = b.reply
     LEFT JOIN prefix_groupusers sg ON sg.uid = ".$_SESSION['authid']." AND sg.gid = b.start
    WHERE ((".$_SESSION['authright']." <= b.view AND b.view < 1)
      OR (".$_SESSION['authright']." <= b.reply AND b.reply < 1)
      OR (".$_SESSION['authright']." <= b.start AND b.start < 1)
            OR vg.fid IS NOT NULL
            OR rg.fid IS NOT NULL
            OR sg.fid IS NOT NULL
            OR -9 >= ".$_SESSION['authright']."
            AND F.cid = '45'
    ORDER BY c.time DESC
    LIMIT 0,5";
    echo '<table>';
    $resultID = db_query($query);
    while ($row = db_fetch_assoc($resultID)) {
            $row['date'] = date('d.m.y - H:i',$row['time']);
            $row['page'] = ceil ( ($row['rep']+1)  / $allgAr['Fpanz'] );
      echo '<tr><td valign="top"><b> &raquo; </b></td><td><a href="?forum-showposts-'.$row['id'].'-p'.$row['page'].'#'.$row['pid'].'" title="'.$row['date'].'">'.((strlen($row['name'])<18) ? $row['name'] : substr($row['name'],0,15).'...').'<br /><span class="smalfont"> von '.$row['last'].'</span></a></td></tr>';
    }
    echo '</table>';
    ?>



    Weiß einer nen Rat ???
    Fehlende Leistung kann man nur mit genug Wahnsinn wet machen...
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    Tr3icio gelöschter User
    '45' ??
    45 ist kein String also niemals ' oder " :-)
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    blackbulls Mitglied
    Registriert seit
    21.11.2008
    Beiträge
    62
    Beitragswertungen
    0 Beitragspunkte
    String ? das versteh ich jetzt nicht.

    Also die Forum Kategorie die ich anzeigen möchte in einer Box, ist laut SQL Datenbank = ID '45'

    Oder ist die ID ne ganz andere ??? Ich ahb echt kein Plan was da schief gelaufen ist.
    Fehlende Leistung kann man nur mit genug Wahnsinn wet machen...
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    Tr3icio gelöschter User
    Ich meine nur: Ne Zahl bekotmm niemals " oder '
    Also:

    "45" == falsch
    '45' == falsch
    45 == einzige richtige methode
    0 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    Ripper_L Mitglied
    Registriert seit
    24.02.2009
    Beiträge
    417
    Beitragswertungen
    11 Beitragspunkte
    Er meint damit, du sollst die Zahl nicht in Gänsefüßchen setzen zwinker
    0 Mitglieder finden den Beitrag gut.
  25. #25
    User Pic
    blackbulls Mitglied
    Registriert seit
    21.11.2008
    Beiträge
    62
    Beitragswertungen
    0 Beitragspunkte
    ok habs probiert ohne alles und nur 45 eingetragen. aber leider kommt wieder das.

    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 'ORDER BY c.time DESC LIMIT 0,5' at line 17

    in Query:
    SELECT a.id, a.name, a.rep, c.erst as last, c.id as pid, c.time FROM ic2_topics a LEFT JOIN ic2_forums b ON b.id = a.fid LEFT JOIN ic2_forumcats F ON F.id = b.cid LEFT JOIN ic2_posts c ON c.id = a.last_post_id LEFT JOIN ic2_groupusers vg ON vg.uid = 1 AND vg.gid = b.view LEFT JOIN ic2_groupusers rg ON rg.uid = 1 AND rg.gid = b.reply LEFT JOIN ic2_groupusers sg ON sg.uid = 1 AND sg.gid = b.start WHERE ((-9 <= b.view AND b.view < 1) OR (-9 <= b.reply AND b.reply < 1) OR (-9 <= b.start AND b.start < 1) OR vg.fid IS NOT NULL OR rg.fid IS NOT NULL OR sg.fid IS NOT NULL OR -9 >= -9 AND F.cid = 45 ORDER BY c.time DESC LIMIT 0,5

    Debug backtrace:
    @ mysql.php:32 -- debug_bt()
    @ mysql.php:50 -- db_check_error(...)
    @ marktplatz.php:26 -- db_query(...)
    @ design.php:332 -- require_once(...)
    @ design.php:254 -- design->get_boxcontent(...)
    @ design.php:46 -- design->get_boxes(...)
    @ news.php:9 -- design->design(...)
    @ news.php:21 -- require_once(...)
    @ index.php:24 -- require_once(...)
    Fehlende Leistung kann man nur mit genug Wahnsinn wet machen...
    0 Mitglieder finden den Beitrag gut.
  26. #26
    User Pic
    blackbulls Mitglied
    Registriert seit
    21.11.2008
    Beiträge
    62
    Beitragswertungen
    0 Beitragspunkte
    also ich bin immernoch nicht weiter brauch immernoch hilfe. irgendwie gehts immernoch nicht.
    Fehlende Leistung kann man nur mit genug Wahnsinn wet machen...
    0 Mitglieder finden den Beitrag gut.
  27. #27
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    bei mir haut das nicht hin. hab f.cid = 18 und er zeigt mirkeine Themen an traurig

    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
     
    defined ('main') or die ( 'no direct access' );
     
    $query = "SELECT a.id, a.name, a.rep, c.erst as last, c.id as pid, c.time
    FROM prefix_topics a
     LEFT JOIN prefix_forums b ON b.id = a.fid
     LEFT JOIN prefix_forumcats F ON F.id = b.cid
     LEFT JOIN prefix_posts c ON c.id = a.last_post_id
     LEFT JOIN prefix_groupusers vg ON vg.uid = ".$_SESSION['authid']." AND vg.gid = b.view
     LEFT JOIN prefix_groupusers rg ON rg.uid = ".$_SESSION['authid']." AND rg.gid = b.reply
     LEFT JOIN prefix_groupusers sg ON sg.uid = ".$_SESSION['authid']." AND sg.gid = b.start
    WHERE ((".$_SESSION['authright']." <= b.view AND b.view < 1)
      OR (".$_SESSION['authright']." <= b.reply AND b.reply < 1)
      OR (".$_SESSION['authright']." <= b.start AND b.start < 1)
            OR vg.fid IS NOT NULL
            OR rg.fid IS NOT NULL
            OR sg.fid IS NOT NULL
            OR -9 >= ".$_SESSION['authright'].")
            AND F.cid = '18'
    ORDER BY c.time DESC
    LIMIT 0,3";
    echo '<table width="100%">';
    $resultID = db_query($query);
    while ($row = db_fetch_assoc($resultID)) {
    $class = ($class == 'lastforumbox1' ? 'lastforumbox2' : 'lastforumbox1');
    	$row['date'] = date('d.m.y - H:i',$row['time']);
    	$row['page'] = ceil ( ($row['rep']+1)  / $allgAr['Fpanz'] );
      echo '<tr height="40px" class="' . $class . '"><td width="30px" valign="middle"><center><div class="forenicon"></div></center></td><td style="padding-left:7px; font-size:12px; font-family:Verdana; color:ffffff;"><a href="?forum-showposts-'.$row['id'].'-p'.$row['page'].'#'.$row['pid'].'" title="'.$row['date'].'">'.((strlen($row['name'])<40) ? $row['name'] : substr($row['name'],0,15).'...').'<br /><span class="smalfont"> von '.$row['last'].'</span></a></td></tr>';
    }
    echo '</table>';
    ?>


    mit dem art hats geklappt etwas weiter oben. keine ahnung woran es liegt traurig


    Zuletzt modifiziert von Chester am 23.06.2011 - 20:40:51
    0 Mitglieder finden den Beitrag gut.
  28. #28
    User Pic
    Tr3icio gelöschter User
    @Chester: Änder mal F.cid in f.cid , weiß nicht genau wie genau SQL das nimmt ^^
    0 Mitglieder finden den Beitrag gut.
  29. #29
    User Pic
    Chester Mitglied
    Registriert seit
    17.02.2009
    Beiträge
    753
    Beitragswertungen
    19 Beitragspunkte
    klappt nicht krig ich ne fehlermeldung
    0 Mitglieder finden den Beitrag gut.
  30. #30
    User Pic
    Tr3icio gelöschter User
    Oh sry war richtig, hatte mich verguckt
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten