Kategorie anzeigen in der Forensuche |
Epona
Mitglied
Dabei seit: 15.01.07
Beiträge: 48
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Fortgeschritten Herkunft: Paris Forenversion: 2.3; Lite 1.0
|
|
Liebe User,
ja ich schon wieder.
Unser Forum hat relativ viele Suche & Biete Areas. Wenn man die Suche anschmeißt, steht dabei leider nicht, um welche Überkategorie es sich dabei handelt. Man kriegt also einen Post in der Suche Area angezeigt. Und klickt rauf und stellt fest - verdammt, ist ja gar nicht in der Grafiken- sondern Fotoarea etc.
Nun wollte ich das auf eigene Faust erledigen und bin schon bei den Vorbereitungen gescheitert. Um die Überkategorie abzufragen müsste ich ja wissen, wo das Forum als Unterforum eingetragen ist in der bb1_board aber ich seh - um ehrlich zu sein - bei den Spalten nicht durch. Ich dachte erst, ich müsste mir das Feld parentlist angucken. Aber irgendwie machen die Zahlen darin keinen Sinn? Steh gerade echt aufm Schlauch :/ Kann mir da jemand vielleicht einen Denkanstoß geben?
Und selbst wenn ich wüsste welche Spalte ich anfragen muss... die Abfrage sieht ja so aus:
$result = $db->unbuffered_query("SELECT
$ownuserid
t.*,
b.title, b.hotthread_reply, b.hotthread_view, b.postsperpage,
i.*
$vselect
FROM bb".$n."_threads t
LEFT JOIN bb".$n."_icons i USING (iconid)
LEFT JOIN bb".$n."_boards b ON (b.boardid=t.boardid)
$ownjoin
$vjoin
WHERE t.threadid IN (0$threadids)
ORDER BY $sortby $sortorder");
Beim fett markierten frage ich die boards ja bereits schon mal ab, um den Forennamen zu erfahren, in dem sich der Thread befindet. Kann ich jetzt überhaupt nochmal abfragen, um die Überkategorie zu erfahren? Ich arbeite so gut wie nie mit JOIN. Weiß deswegen nicht, ob das geht. Eher nicht, oder? Verwirrung
__________________
|
|
03.11.11 15:59 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Epona
Mitglied
Dabei seit: 15.01.07
Beiträge: 48
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Fortgeschritten Herkunft: Paris Forenversion: 2.3; Lite 1.0
Themenstarter
|
|
Danke !!
Die Abfrage muss aber neu in der While Schleife geschehen und kann nicht im Join mit eingebaut werden, oder?
__________________
|
|
04.11.11 09:44 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Epona
Mitglied
Dabei seit: 15.01.07
Beiträge: 48
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Fortgeschritten Herkunft: Paris Forenversion: 2.3; Lite 1.0
Themenstarter
|
|
Ja aber das ist die boardid vom Thread, also das Forum wo sich der Thread drin befindet. (;
__________________
|
|
04.11.11 11:30 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Schrimm
Banned
Dabei seit: 21.08.11
Beiträge: 700
|
|
Je nachdem wie genau du es haben willst.
Da ich nicht genau weiß, wie die Daten in der "parentlist" aussehen.
Die Variante mit einer "getrennten" Schleife ist auf alle Fälle sicherer bzw. eine die funktioniert.
Du kannst dennoch mal versuchen die "boards"-Tabelle zweimal abzufragen. (Natürlich dann mit unterschieldichen Aliasnamen).
Zusätzlich noch mit "stristr()" oder "strstr" einmal die parentlist bearbeiten.
Beispiel:
php: |
1:
|
$result = $db->unbuffered_query("SELECT b1.boardid AS boardidone, b1.parentid, b1.title AS titleone, b2.boardid AS boardidtwo, b2.title AS titletwo FROM bb".$n."_boards b1 LEFT JOIN bb".$n."_boards b2 ON (b2.boardid=strstr(b1.parentlist,',',true)) WHERE b1.boardid=$threadboardid"); |
|
Dies ist nur ein Beispiel.
Eine Garantie, dass es so funktioniert kann ich nicht geben.
Voraussetzung für die strstr-Anweisung hier ist zudem noch php 5.3.0.
Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Schrimm: 04.11.11 12:46.
|
|
04.11.11 12:18 |
Finden
Als Freund hinzufügen
|
|
C-Board unregistriert
|
|
Da ich selbst schon auf der Suche nach einer Lösung für exakt dieses Problem war, habe ich getestet und eine Lösung gefunden.
Hier habe ich den Weg beschrieben.
Gruß Mike
|
|
04.11.11 16:35 |
|
|
Schrimm
Banned
Dabei seit: 21.08.11
Beiträge: 700
|
|
Dein Code zeigt alle übergeordneten Boards an oder?
Das ist dann quasi die Variante aus der "navbar".
Bzw. du hast dessen Code einfach in die Schleife hinzugefügt, wenn ich das richtig sehe.
|
|
04.11.11 17:15 |
Finden
Als Freund hinzufügen
|
|
C-Board unregistriert
|
|
Ja, es werden ALLE Unterforen angezeigt. Damit sind dann ja auch alle Eventualitäten beseitigt
Ich habe einen Teil der NavBar-Gestaltung dafür genommen, auch das Template. Warum das Rad ein füntesmal neu erfinden???
Sofern Epona aber nur das letzte Unterforum angezeigt haben möchte, kann ich da morgen gern nochmal etwas umcoden.
Gruß Mike
|
|
04.11.11 17:21 |
|
|
Epona
Mitglied
Dabei seit: 15.01.07
Beiträge: 48
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Fortgeschritten Herkunft: Paris Forenversion: 2.3; Lite 1.0
Themenstarter
|
|
Hallo Mike! Vielen lieben Dank für deine Anleitung! So ist es sogar noch besser
Ich hab die Anleitung auch noch für die Postanzeige in der Suche verwendet. Vielen lieben Dank dafür!
Danke für eure Unterstützung!
__________________
|
|
05.11.11 18:00 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
C-Board unregistriert
|
|
Jepp - das mit den Postings hatte ich ganz vergessen.
Allerdings werde ich da wohl eine Templateanpassung empfehlen. Denn wenn Du Dir mal den ScreenShot anschaust, dann sieht das bei langen Forennamen bescheiden aus und wird zweimal umgebrochen.
Ich mache mich morgen mal an eine passable Lösung.
Gruß Mike
|
|
05.11.11 19:33 |
|
|
|