Fehler beim verschieben eines Beitrags

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
larsu
Mitglied
Beiträge: 275
Registriert: 05.04.2008 20:13

Fehler beim verschieben eines Beitrags

Beitrag von larsu »

Hi, wenn ich einen Beitrag verschieben will, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysqli ]

[0]

SQL

No values specified for SQL IN comparison

BACKTRACE

FILE: includes/db/dbal.php
LINE: 379
CALL: dbal->sql_error()

FILE: includes/functions_admin.php
LINE: 454
CALL: dbal->sql_in_set()

FILE: includes/mcp/mcp_main.php
LINE: 637
CALL: move_topics()

FILE: includes/mcp/mcp_main.php
LINE: 93
CALL: mcp_move_topic()

FILE: includes/functions_module.php
LINE: 471
CALL: mcp_main->main()

FILE: includes/functions_module.php
LINE: 766
CALL: p_master->load_active()

FILE: mcp.php
LINE: 168
CALL: p_master->load()
Wenn alles schläft und einer spricht, dann nennt der Mensch das Unterricht! XD
larsu
Mitglied
Beiträge: 275
Registriert: 05.04.2008 20:13

Beitrag von larsu »

Könnte es auch an den mods liegen die ich eingebaut habe?

Ad management
ajax chat acp
announcement centre
arcade
bbcodebox3
html ranks
no avatar
last topic titles
partner mod
recent topics
shmk user feedback
simple acp pm read
user blog mod
user reputation points
Wenn alles schläft und einer spricht, dann nennt der Mensch das Unterricht! XD
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Hast Du mal den Debug-Modus in der config.php eingeschaltet, indem Du für die letzten beiden Zeilen die Auskommentierung weggemacht hast?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
larsu
Mitglied
Beiträge: 275
Registriert: 05.04.2008 20:13

Beitrag von larsu »

Dann kommt diese meldung
[phpBB Debug] PHP Notice: in file /includes/functions_admin.php on line 454: Undefined variable: post_ids
Wenn alles schläft und einer spricht, dann nennt der Mensch das Unterricht! XD
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Ich denke mal, es sollte post_id heissen.. Also ohne S hintendran.
Schau mal in die angemeckerte Datei auf oder in der Nähe der Zeile, die genannt wurde.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
larsu
Mitglied
Beiträge: 275
Registriert: 05.04.2008 20:13

Beitrag von larsu »

Dann kommt das:
[phpBB Debug] PHP Notice: in file /includes/functions_admin.php on line 454: Undefined variable: post_id
Aber ich habe herausgefunden aus welchem mod der fehler kommt, nämlich vom user reputation points mod.

Hier der teil aus der anleitung:
Open: includes/functions_admin.php
Find

Tip: This may be a partial find and not the whole line.
Code: Select All

foreach ($table_ary as $table)
{
$sql = "DELETE FROM $table
WHERE " . $db->sql_in_set('post_id', $post_ids);
$db->sql_query($sql);
}
unset($table_ary);

Add after

Tip: Add these lines on a new blank line after the preceding line(s) to find.
Code: Select All

// user reputation points
$sql = 'DELETE FROM ' . REPUTATIONS_TABLE . '
WHERE ' . $db->sql_in_set('rep_post_id', $post_ids);
$db->sql_query($sql);
// end
und hier die betreffende stelle aus meiner datei:

Code: Alles auswählen

		while ($row = $db->sql_fetchrow($result))
		{
			$forum_ids[] = $row['forum_id'];
		}
		$db->sql_freeresult($result);
	}

	$table_ary = array(TOPICS_TABLE, POSTS_TABLE, LOG_TABLE, DRAFTS_TABLE, TOPICS_TRACK_TABLE);
	foreach ($table_ary as $table)
	{
		$sql = "UPDATE $table
			SET forum_id = $forum_id
			WHERE " . $db->sql_in_set('topic_id', $topic_ids);
		$db->sql_query($sql);
	}
	unset($table_ary);
	// user reputation points	
	$sql = 'DELETE FROM ' . REPUTATIONS_TABLE . '
				WHERE ' . $db->sql_in_set('rep_post_id', $post_ids);
			$db->sql_query($sql);	
// end 

	if ($auto_sync)
	{
		sync('forum', 'forum_id', $forum_ids, true, true);
		unset($forum_ids);
	}
}

/**
* Move post(s)
*/
function move_posts($post_ids, $topic_id, $auto_sync = true)
{
	global $db;

	if (!is_array($post_ids))
	{
		$post_ids = array($post_ids);
	}

	$forum_ids = array();
	$topic_ids = array($topic_id);

	$sql = 'SELECT DISTINCT topic_id, forum_id
		FROM ' . POSTS_TABLE . '
		WHERE ' . $db->sql_in_set('post_id', $post_ids);
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		$forum_ids[] = $row['forum_id'];
		$topic_ids[] = $row['topic_id'];
	}
	$db->sql_freeresult($result);

	$sql = 'SELECT forum_id
		FROM ' . TOPICS_TABLE . '
		WHERE topic_id = ' . $topic_id;
	$result = $db->sql_query($sql);
	$forum_row = $db->sql_fetchrow($result);
	$db->sql_freeresult($result);

	if (!$forum_row)
	{
		trigger_error('NO_TOPIC');
	}

	$sql = 'UPDATE ' . POSTS_TABLE . '
		SET forum_id = ' . $forum_row['forum_id'] . ", topic_id = $topic_id
		WHERE " . $db->sql_in_set('post_id', $post_ids);
	$db->sql_query($sql);

	$sql = 'UPDATE ' . ATTACHMENTS_TABLE . "
		SET topic_id = $topic_id, in_message = 0
		WHERE " . $db->sql_in_set('post_msg_id', $post_ids);
	$db->sql_query($sql);

	if ($auto_sync)
	{
		$forum_ids[] = $forum_row['forum_id'];

		sync('topic_reported', 'topic_id', $topic_ids);
		sync('topic_attachment', 'topic_id', $topic_ids);
		sync('topic', 'topic_id', $topic_ids, true);
		sync('forum', 'forum_id', $forum_ids, true, true);
Wenn alles schläft und einer spricht, dann nennt der Mensch das Unterricht! XD
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Dann heisst es wohl doch post_ids.
Hast Du denn mal geprüft, ob diese Variable auch existiert? Also $post_ids.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
larsu
Mitglied
Beiträge: 275
Registriert: 05.04.2008 20:13

Beitrag von larsu »

Dumme Frage, aber wie mache ich das denn?
Wenn alles schläft und einer spricht, dann nennt der Mensch das Unterricht! XD
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Es könnte so klappen:
finde

Code: Alles auswählen

// user reputation points
$sql = 'DELETE FROM ' . REPUTATIONS_TABLE . '
WHERE ' . $db->sql_in_set('rep_post_id', $post_ids);
$db->sql_query($sql);
// end 
davor setze ein:

Code: Alles auswählen

if (isset($post_ids)) var_dump($post_ids); else print("Keine Variable \$post_ids gesetzt.");
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
larsu
Mitglied
Beiträge: 275
Registriert: 05.04.2008 20:13

Beitrag von larsu »

Hat leider nicht geklappt, kommt immer noch der gleiche fehler...
Wenn alles schläft und einer spricht, dann nennt der Mensch das Unterricht! XD
Antworten

Zurück zu „[3.0.x] Mod Support“