Seite 1 von 1

sql error 1064 in search.php

Verfasst: 03.01.2006 19:35
von Bine24
Hallo,

ich habe bestimmt eine Stunde gesucht, aber keiner scheint denselben Fehler zu haben :(
Wenn ich einen Begriff suche, erscheint folgender sql-error:

Code: Alles auswählen

Allgemeiner Fehler
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 'WHERE w.word_text LIKE 'evolve' AND m.word_id = w.wor

SELECT m.post_id FROM WHERE w.word_text LIKE 'evolve' AND m.word_id = w.word_id AND w.word_common <> 1

Line : 317
File : search.php
Die sql-Tabelle habe ich kontrolliert. Die funktioniert. Ich kenne mich leider nicht so gut mit php aus, als dass ich feststellen könnte, ob vielleicht ein Semikolon zuviel oder ein Kommata zu wenig ist...

Hier Zeile 290-320 aus der search.php:

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" . (($only_bluecards) ? ','.POSTS_TABLE . ' p ' : '') . "
								
								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 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
								$search_msg_only";
						}
						if ( !($result = $db->sql_query($sql)) )
						{
							message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
						}

						$row = array();
Ich hatte zuvor den Yellow Card Mod eingebaut.
Wäre recht dankbar für schnelle Hilfe :wink:

Re: sql error 1064 in search.php

Verfasst: 03.01.2006 22:39
von easygo
Bine24 hat geschrieben:SELECT m.post_id FROM ? WHERE w.word_text LIKE 'evolve' AND m.word_id = w.word_id AND w.word_common <> 1
So wie das aussieht, fehlt dir da ein bisschen was. Ersetz die Zeile -->

Code: Alles auswählen

FROM" . (($only_bluecards) ? ','.POSTS_TABLE . ' p ' : '') . "
einfach mal durch die -->

Code: Alles auswählen

FROM " . SEARCH_WORD_TABLE . " w, " . SEARCH_MATCH_TABLE . " m " . (($only_bluecards) ? ','.POSTS_TABLE . ' p ' : '') . "
und wenn du Glück hast, wars das schon. easy

Re: sql error 1064 in search.php

Verfasst: 04.01.2006 11:37
von Bine24
easygo hat geschrieben: und wenn du Glück hast, wars das schon. easy
Tatsächlich, das war es schon :D Ich danke dir!!!