Seite 1 von 1
Beitrags ID in Beitrag (geeignet für die Suche) anzeigen
Verfasst: 04.07.2008 00:49
von Tommy_65428
Moin Moin.
Ich möchte gerne die Beitrags ID eines jeden Beitrags im jeweiligen Beitrag anzeigen lassen. Getrennt unterhalb des eingegebenen Beitrags durch ein "<hr>" Allerdings möchte Ich es so, daß die Beitrags ID auch über die Boardsuche gefunden werden kann. Leider ist mir das bisher noch nicht gelungen
Kann mir dabei jemand helfen ?
Danke schonmal im vorraus

Verfasst: 04.07.2008 01:07
von tas2580
Warum willst du einen Beitrag suchen dessen ID du schon kennst?
Verfasst: 04.07.2008 01:11
von Tommy_65428
Hat nichts damit zu tun das Ich den schon kenne. Es geht darum. daß die ID von jedem einzelnen Beitrag unter dem jeweiligen Beitrag angezeigt wird.
Liest Du die Computer Bild (Spiele, Video etc. pp) ? Da gibts Webcodes, soll sowas ähnliches darstellen. Die "zweite" Suche ist schon drinnen, Ich bekomme das nur um´s verrecken nicht hin, die ID im Beitrag so anzuzeigen, daß die Suche (Auch die normale Suche findet die ID´s nicht) die ID´s findet. *hmpf*
Verfasst: 04.07.2008 01:24
von tas2580
Hm, entweder du schreibst die Nummer direkt in den Beitrag rein, beim absenden eines neuen Beitrags holst du dir danach mit mysql_insert_id() die ID und machst ein zusätzliches Querry mit message = mesage + $beitrag_id. Hat allerdings den Nachteil das man die ID per "Beitrag bearbeiten" ändern kann und das bei vorhandenen Beiträgen nicht funktioniert.
Die andere Möglichkeit die mir einfällt währe das du die Suche änderst. Ich hab schon lange nichts mehr mit phpBB2 gemacht und weiß nicht mehr genau wie die Suche da aufgebaut ist, aber du kannst doch bestimmt irgendwo ein Querry einbauen oder ädern so das nicht nur im Beitrag sonder auch in der Spalte der IDs gesucht wird.
Verfasst: 04.07.2008 01:54
von Tommy_65428
Das ist mir dann doch ne Nummer zu hoch

Verfasst: 04.07.2008 02:10
von tas2580
Suche in der search.php
Code: Alles auswählen
if ( !strstr($multibyte_charset, $lang['ENCODING']) )
{
$match_word = str_replace('*', '%', $split_search[$i]);
$sql = "SELECT m.post_id
FROM " . SEARCH_WORD_TABLE . " w, " . SEARCH_MATCH_TABLE . " m
WHERE w.word_text LIKE '$match_word'
AND m.word_id = w.word_id
AND w.word_common <> 1
$search_msg_only";
}
else
{
$match_word = addslashes('%' . str_replace('*', '', $split_search[$i]) . '%');
$search_msg_only = ( $search_fields ) ? "OR post_subject LIKE '$match_word'" : '';
$sql = "SELECT post_id
FROM " . POSTS_TEXT_TABLE . "
WHERE post_text LIKE '$match_word'
$search_msg_only";
}
ersetze mit
Code: Alles auswählen
if ( !strstr($multibyte_charset, $lang['ENCODING']) )
{
$match_word = str_replace('*', '%', $split_search[$i]);
$sql = "SELECT m.post_id
FROM " . SEARCH_WORD_TABLE . " w, " . SEARCH_MATCH_TABLE . " m, " . POSTS_TEXT_TABLE . " p
(WHERE w.word_text LIKE '$match_word'
AND m.word_id = w.word_id
AND w.word_common <> 1)
OR (p.post_id = '$match_word')
$search_msg_only";
}
else
{
$match_word = addslashes('%' . str_replace('*', '', $split_search[$i]) . '%');
$search_msg_only = ( $search_fields ) ? "OR post_subject LIKE '$match_word'" : '';
$sql = "SELECT post_id
FROM " . POSTS_TEXT_TABLE . "
WHERE post_text LIKE '$match_word'
OR post_id = '$match_word'
$search_msg_only";
}
Ich hab das jetzt zwar nicht getestet, aber ungefähr so sollte es funktionieren.
Verfasst: 04.07.2008 02:22
von Tommy_65428
Sieht dann so aus:
Code: Alles auswählen
if ( !strstr($multibyte_charset, $lang['ENCODING']) )
{
$match_word = str_replace('*', '%', $split_search[$i]);
$search_msg_only .= ($only_bluecards) ? " AND p.post_bluecard>0 AND m.post_id=p.post_id " : "";
$sql = "SELECT m.post_id
FROM " . SEARCH_WORD_TABLE . " w, " . SEARCH_MATCH_TABLE . " m " . (($only_bluecards) ? ','.POSTS_TABLE . ' p ' : '') . "
WHERE w.word_text LIKE '$match_word'
AND m.word_id = w.word_id
AND w.word_common <> 1
OR (p.post_id = '$match_word')
$search_msg_only";
}
else
{
$match_word = addslashes('%' . str_replace('*', '', $split_search[$i]) . '%');
$search_msg_only = ( $search_fields ) ? "OR pt.post_subject LIKE '$match_word'" : '';
$search_msg_only .= ($only_bluecards) ? " AND p.post_bluecard>0 AND pt.post_id=p.post_id " : "";
$sql = "SELECT pt.post_id
FROM " . POSTS_TEXT_TABLE . " pt " . (($only_bluecards) ? ','.POSTS_TABLE . ' p ' : '') . "
WHERE pt.post_text LIKE '$match_word'
OR post_id = '$match_word'
$search_msg_only";
}
Und führt zu folgendem Fehler:
Code: Alles auswählen
Could not obtain matched posts list
DEBUG MODE
SQL Error : 1109 Unknown table 'p' in where clause
SELECT m.post_id FROM FLphpbb_search_wordlist w, FLphpbb_search_wordmatch m WHERE w.word_text LIKE 'test' AND m.word_id = w.word_id AND w.word_common <> 1 OR (p.post_id = 'test')
Line : 430
File : search.php
Egal ob Ich nach "Test" oder einer Post ID suche

Verfasst: 05.07.2008 00:36
von cYbercOsmOnauT
Ich zitiere
SELECT m.post_id FROM FLphpbb_search_wordlist w, FLphpbb_search_wordmatch m WHERE w.word_text LIKE 'test' AND m.word_id = w.word_id AND w.word_common <> 1 OR (p.post_id = 'test')
Kleiner, aber feiner Tippfehler.

Zudem ist der Wert einer post_id immer INT, somit ist (ausgebessert)
OR (m.post_id = 'test') immer
FALSE.
Verfasst: 05.07.2008 10:42
von Tommy_65428
Besten Dank Tekin. Ich hab mir an dem Ding den Kopf zerbrochen
