Seite 1 von 1

Ein Problem mit einem SQL-Syntax

Verfasst: 03.03.2005 13:00
von raphael
Hallo,
ich habe ein kleines Problem und stelle es hier rein, da es sich dabei nur um ein Problem mit einem SQL-Syntax handelt. Es handelt sich hierbei zwar nicht um eigenen Code, sondern den von einem Mod. Dennoch liegt jetzt kein direktes Problem mit diesem Mod vor. Ich frage mich einfach, was daran falsch sein soll.
Folgender Code:

Code: Alles auswählen

	$sql = "SELECT uc.*, u.username
			FROM " . USERS_COMMENTS_TABLE . " uc, " . USERS_TABLE . " u
			WHERE uc.user_id = $user_id
				AND u.user_id = uc.poster_id
			ORDER BY uc.time DESC
			LIMIT 0, " . $comments_config['comments_on_mini'];
erzeugt bei mir diesen Fehler:
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 6

SELECT uc.*, u.username FROM phpbb_users_comments uc, phpbb_users u WHERE uc.user_id = 2 AND u.user_id = uc.poster_id ORDER BY uc.time DESC LIMIT 0,
An anderer Stelle wird durch diesen Code:

Code: Alles auswählen

$sql = "SELECT uc.*, u.username
		FROM " . USERS_COMMENTS_TABLE . " uc, " . USERS_TABLE . " u
		WHERE u.user_id = uc.poster_id
			AND uc.user_id = $user_id
		ORDER BY uc.time " . $comments_config['view_order'] . "
		LIMIT $start, " . $comments_config['comments_per_page'];
auch wieder die selbe Art der Fehlermeldung hervorgerufen. Der Fehler liegt auch hier anscheinend in der 6. Zeile.

Vielleicht kann mir ja jemand helfen.

Verfasst: 03.03.2005 13:06
von Leuchte

Code: Alles auswählen

LIMIT 0, " . $comments_config['comments_on_mini'];
Was soll denn da weitergegeben werden? Zumindest ist diese Variable leer.

Verfasst: 03.03.2005 14:26
von raphael
Eigentlich sollte er die Variable durch einen vorherigen Code schon erhalten haben. In der Datenbank ist sie mit einer 6 belegt.

Code: Alles auswählen

function get_comments_config()
{
	global $db;

	$sql = "SELECT * FROM " . COMMENTS_CONFIG_TABLE;
	if( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, 'Could not retrieve comments configuration', '', __LINE__, __FILE__, $sql);
	}

	$comments_config = array();
	while( $row = $db->sql_fetchrow($result) )
	{
		$comments_config[$row['config_name']] = $row['config_value'];
	}

	return $comments_config;
}

Verfasst: 03.03.2005 14:38
von Pyramide
Lass dir doch das Array mal per print_r($comments_config) ausgeben.

Verfasst: 03.03.2005 15:02
von raphael
In der Ausgabe steht folgendes:
Array ( [comments_per_page] => 15 ) Array ( [comments_per_page] => 15 [comments_on_mini] => 6 ) Array ( [comments_per_page] => 15 [comments_on_mini] => 6 [view_order] => DESC ) Array ( [comments_per_page] => 15 [comments_on_mini] => 6 [view_order] => DESC [auth_owner] => 2 ) Array ( [comments_per_page] => 15 [comments_on_mini] => 6 [view_order] => DESC [auth_owner] => 2 [auth_all] => 0 ) Array ( [comments_per_page] => 15 [comments_on_mini] => 6 [view_order] => DESC [auth_owner] => 2 [auth_all] => 0 [auth_reg] => 2 ) Array ( [comments_per_page] => 15 [comments_on_mini] => 6 [view_order] => DESC [auth_owner] => 2 [auth_all] => 0 [auth_reg] => 2 [auth_mod] => 5 )
Er erhält den Wert also.
Achja, danke für die Hilfe.

Verfasst: 04.03.2005 15:42
von raphael
Ich habe dieses Problem nun nicht mehr, da ich für meine Wünsche eine bessere Modifikation gefunden habe. Diese wird nun verwendet.

Wen die Geschichte interessiert:
Ich habe den Wert am Ende einfach per Hand eingegeben, nachdem alles ausprobieren nichts genützt hat. Dann tauchte an anderer Stelle wieder ein nerviger Fehler auf. Diesen habe ich dann behoben. Woanders fand ich noch einen, dann hatte ich keine Lust mehr, zumal ich bei solch einem fehlerhaften Code jetzt auch nicht gerade von einer großen Sicherheit ausgehen kann. Also habe ich das ganze verworfen und etwas anders verwendet. :grin:

Trotzdem bedanke ich mich nochmal bei denjenigen, die mir helfen wollten.