Suche auf weitere Tabelle erweitern

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
webazubi
Mitglied
Beiträge: 96
Registriert: 30.07.2005 01:13

Suche auf weitere Tabelle erweitern

Beitrag von webazubi »

Hallo. Ich möchte über die in phpbb eingebaute Suche-Funktion gerne ein weitere Tabelle abfragen, die ich nachträglich eingebaut habe.
Bislang habe ich den einfachen Weg gewählt und schreibe in die search.php eine SQL-Abfrage, die meine Tabelle durchsucht und dabei die phpbb-Konstante §keywords als Kriterium nimmt. Das kann ich mir nun auch in der search_results.html ausgeben lassen. Allerdings wird die search_results.html offenbar nicht aufgerufen, wenn die Suche in den normalen phpbb-Tabellen kein Ergebnis gebracht hat.
Meine Frage also: Wie kann ich dafür sorgen, dass entweder
- die search_results.html auf jeden Fall angezeigt wird, selbst wenn die Suche (über die herkömmlichen Tabellen) kein Ergebnis brachte? Bei dieser Variante würde das Ergebnis meiner eigenen Suche dann zumindest angezeigt werden.
- oder wo müsste ich meine Abfrage über meine Tabelle in der search.php eintragen, damit meine Tabelle bei den Ergbnissen der normalen Suchabfrage mit berücksichtigt wird?
Danke
Ninos
Mitglied
Beiträge: 32
Registriert: 31.12.2008 18:18

Re: Suche auf weitere Tabelle erweitern

Beitrag von Ninos »

poste mal dein Skript, dann können wir dir vielleicht helfen.
Das sind zu weniger Infos mom ;)
webazubi
Mitglied
Beiträge: 96
Registriert: 30.07.2005 01:13

Re: Suche auf weitere Tabelle erweitern

Beitrag von webazubi »

Hallo. Mein Script ist bislang nur Standardcode.
Ich habe eine Tabelle "beitrag" mit den Feldern "beitrags_id" und "titel". Nach dieser Spalte "titel" möchte ich durchsuchen.
In der search.php wird standardmäßig oben das Keyword abgefragt, also das Wort, dass bei Neuaufruf der Seite gesucht werden soll, mit

Code: Alles auswählen

$keywords = utf8_normalize_nfc(request_var('keywords', '', true));
Dahinter schreibe ich dann meine Abfrage und schicke das Ergebnis ins Template:

Code: Alles auswählen

$sql = 'SELECT * FROM beitrag WHERE beitrag.titel Like ' . "'%" . $keywords . "%'" ;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
  {
   $beitrags_id = $row['id_beitrag'];
    $beitrags_titel = $row['titel'];
   }
$template->assign_vars(array( 'BEITRAGSTITEL'	=> $beitrags_titel));
In der search_results.html schreibe ich dann die Templatevariabel {BEITRAGSTITEL}, die ich natürlich, wenn es so funktioniert, noch zusammen mit der Übergabe der beitrags_id als Linkadresse usw. formatieren würde.
Ergo: Wenn ich in der Suche-Funktion von phpbb ein Wort eingebe, dass es auch in einem Post gibt, wird die search_result.html aufgerufen und es sind dann auch die Ergebnisse meiner Tabellenabfrage aufgelistet.
Ergibt die Suche in den Posts hingegen kein Ergebnis, wird die search_results.html überhaupt nicht aufgerufen und daher auch nicht die Ergebnisse meiner Tabellensuche.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“