Seite 1 von 1

Fehler bei der Benutzersuche

Verfasst: 22.04.2006 12:15
von Schwarzer-Schlumpf
Hy.

ich hab heut nen Update auf .20 gemacht. Nun bekomme ich bei der Usersuche folgendes.

Bin mir auch nicht sicher, ob das durch das Update kommt, oder vorher schon da war.

Code: Alles auswählen


Could not obtain matched posts list

DEBUG MODE

SQL 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 ')' at line 3

SELECT post_id FROM phpbb2_posts WHERE poster_id IN ()

Line : 264
File : search.php
Hier meine search.php

Danke schon mal.

Verfasst: 23.04.2006 02:23
von cYbercOsmOnauT
Kommt das auch wenn Du den Nick eines wirklich existierenden Users eingibst? Oder nur wenn Du einen nicht existenten Nick suchst?

Grüße,
Tekin

Verfasst: 23.04.2006 14:41
von henrik_
Habe dasselbe Problem.
Link:
http://www.phpbb.de/viewtopic.php?t=119036

Bei mir kommt es in beiden Fällen,also wenn ich nach User hfvodhfgog oder auch nach einem registrierten User suche.

Verfasst: 23.04.2006 19:23
von Schwarzer-Schlumpf
Kleiner Kreisschluss der Links wa? LOL

Ja es ist ein existierender User nach dem ich suche.

Verfasst: 24.04.2006 00:06
von henrik_
Habe möglicherweise den Fehler gefunden.
Bei mir hängt es mit dem noch nicht geupdateten Categories Hack zusammen,weil dieser auch wohl in der search.php rumwuselt.

Joa.Aber das...mache ich noch beizeiten,wenn ich darauf in meinem Thread mal hoffentlich ne Antwort bekommen habe. ;)

Verfasst: 26.04.2006 15:55
von Schwarzer-Schlumpf
Ok aber schon mal danke.

Allerdings habe ich keinen Categories Hack drin :-(
Ok zum Glück benutzt das kaum einer.

Verfasst: 26.04.2006 16:55
von Saint
@Schwarzer-Schlumpf - search.php:

suche:

Code: Alles auswählen

if( ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < 3 ) )				
				
				$sql = "SELECT user_id
					FROM " . USERS_TABLE . "
					WHERE username LIKE '" . str_replace("\'", "''", $search_author) . "'";
ersetze durch:

Code: Alles auswählen

if( ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < 3 ) )
				{
					$search_author = '';
				}

				$sql = "SELECT user_id
					FROM " . USERS_TABLE . "
					WHERE username LIKE '" . str_replace("\'", "''", $search_author) . "'";
suche:

Code: Alles auswählen

$split_search = array();
			$split_search = ( !strstr($multibyte_charset, $lang['ENCODING']) ) ?  split_words(clean_words('search', stripslashes($search_keywords), $stopword_array, $synonym_array), 'search') : split(' ', $search_keywords);	

			$search_msg_only = ( !$search_fields ) ? "AND m.title_match = 0" : ( ( strstr($multibyte_charset, $lang['ENCODING']) ) ? '' : '' );

			$word_count = 0;
			$current_match_type = 'or';

			$word_match = array();
			$result_list = array();

			for($i = 0; $i < count($split_search); $i++)
			{
				switch ( $split_search[$i] )
				{
ersetze durch:

Code: Alles auswählen

$split_search = array();
			$stripped_keywords = stripslashes($search_keywords);
			$split_search = ( !strstr($multibyte_charset, $lang['ENCODING']) ) ?  split_words(clean_words('search', $stripped_keywords, $stopword_array, $synonym_array), 'search') : split(' ', $search_keywords);	
			unset($stripped_keywords);

			$search_msg_only = ( !$search_fields ) ? "AND m.title_match = 0" : ( ( strstr($multibyte_charset, $lang['ENCODING']) ) ? '' : '' );

			$word_count = 0;
			$current_match_type = 'or';

			$word_match = array();
			$result_list = array();

			for($i = 0; $i < count($split_search); $i++)
			{
				if (preg_match('#^[\*%]+$#', trim($split_search[$i])) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($split_search[$i]))))
				{
					$split_search[$i] = '';
					continue;
				}

				switch ( $split_search[$i] )
				{
suche:

Code: Alles auswählen

//
// Search forum
//
$sql = "SELECT c.cat_title, c.cat_id, f.forum_name, f.forum_id  
	FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f
	WHERE f.cat_id = c.cat_id 
	ORDER BY c.cat_id, f.forum_order";
ersetze durch:

Code: Alles auswählen

//
// Search forum
//
$sql = "SELECT c.cat_title, c.cat_id, f.forum_name, f.forum_id  
	FROM " . CATEGORIES_TABLE . " c, " . FORUMS_TABLE . " f
	WHERE f.cat_id = c.cat_id 
	ORDER BY c.cat_order, f.forum_order";
Gruß

Saint

Verfasst: 26.04.2006 20:37
von Schwarzer-Schlumpf
Hey wow danke. Nun geht es wieder. Weißt du warum es fehlerhaft war? Bzw hab ich evtl nen Update in der search.php vergessen?

Verfasst: 27.04.2006 01:19
von Saint
Schwarzer-Schlumpf hat geschrieben:Bzw hab ich evtl nen Update in der search.php vergessen?
Danach sieht es aus. Ansonsten müsstest du dir mal genau die Codeänderungen anschauen, die sagen dir haarklein was falsch war. :wink:

Gruß


Kevin