Ein Problem mit einem SQL-Syntax

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
raphael
Mitglied
Beiträge: 213
Registriert: 04.05.2004 22:11
Wohnort: Nettersheim
Kontaktdaten:

Ein Problem mit einem SQL-Syntax

Beitrag 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.
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Code: Alles auswählen

LIMIT 0, " . $comments_config['comments_on_mini'];
Was soll denn da weitergegeben werden? Zumindest ist diese Variable leer.
raphael
Mitglied
Beiträge: 213
Registriert: 04.05.2004 22:11
Wohnort: Nettersheim
Kontaktdaten:

Beitrag 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;
}
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Lass dir doch das Array mal per print_r($comments_config) ausgeben.
KB:knigge
raphael
Mitglied
Beiträge: 213
Registriert: 04.05.2004 22:11
Wohnort: Nettersheim
Kontaktdaten:

Beitrag 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.
raphael
Mitglied
Beiträge: 213
Registriert: 04.05.2004 22:11
Wohnort: Nettersheim
Kontaktdaten:

Beitrag 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.
Antworten

Zurück zu „Coding & Technik“