Seite 1 von 2

Fehler beim Teilen eine Beitrages

Verfasst: 24.02.2006 21:03
von Leipziger
folgende Fehlermeldung erhalte ich wenn ich versuche Threads zu teilen

Code: Alles auswählen

Could not update topics watch table

DEBUG MODE

SQL Error : 1196 Warning: Some non-transactional changed tables couldn't be rolled back

UPDATE forum_topics_watch SET topic_id = WHERE topic_id = 419 AND user_id IN (52, 118, 19, 52)

Line : 1497
File : modcp.php
Was genau muss ich da ändern, damit es wieder funktioniert?

Hier die betreffende Zeile

Code: Alles auswählen

					message_die(GENERAL_ERROR, 'Could not update topics watch table', '', __LINE__, __FILE__, $sql);
Nachtrag hier der ganze Abschnitt.

Code: Alles auswählen

				// Update topic watch table, switch users whose posts
				// have moved, over to watching the new topic
				$sql = "UPDATE " . TOPICS_WATCH_TABLE . "
					SET topic_id = $new_topic_id
					WHERE topic_id = $topic_id
						AND user_id IN ($user_id_sql)";
				if (!$db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, 'Could not update topics watch table', '', __LINE__, __FILE__, $sql);
				}

				$sql_where = (!empty($HTTP_POST_VARS['split_type_beyond'])) ? " post_time >= $post_time AND topic_id = $topic_id" : "post_id IN ($post_id_sql)";

				$sql = 	"UPDATE " . POSTS_TABLE . "
					SET topic_id = $new_topic_id, forum_id = $new_forum_id
					WHERE $sql_where";
				if (!$db->sql_query($sql, END_TRANSACTION))
				{
					message_die(GENERAL_ERROR, 'Could not update posts table', '', __LINE__, __FILE__, $sql);
				}

				sync('topic', $new_topic_id);
				sync('topic', $topic_id);
				sync('forum', $new_forum_id);
				sync('forum', $forum_id);

				$template->assign_vars(array(
					'META' => '<meta http-equiv="refresh" content="3;url=' . "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id'] . '">')
				);

				$message = $lang['Topic_split'] . '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . "viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&sid=" . $userdata['session_id'] . '">', '</a>');
				message_die(GENERAL_MESSAGE, $message);
			}
		}
		else
		{
Ich hoffe es hilft Euch und damit mir. :wink:

Verfasst: 24.02.2006 21:33
von Leipziger
Achtung ich hab mal den ganzen Cod des Abschnitts eingefügt.

Verfasst: 24.02.2006 23:14
von cYbercOsmOnauT
Pack mal bitte eine Kopie des kompletten modcp.php hier als Downloadlink rein. Aus dem Part ist nur zu erkennen, dass die Variable $new_topic_id fälschlicherweise leer ist.

Gruß,
Tekin

Verfasst: 24.02.2006 23:19
von Leipziger
Danke für die Antwort hier der Link http://computer.selfhost.tv/modcp.php.zip
Hoffe es hilft.

Verfasst: 25.02.2006 00:05
von cYbercOsmOnauT
Hast Du irgendwelche Mods installiert, die modcp.php und/oder /db/mysql4.php (oder halt nur /db/mysql.php) verändet haben?

Das Problem entsteht scheinbar dadurch, das diese Zeile

Code: Alles auswählen

$new_topic_id = $db->sql_nextid();
die normalerweise die nächste Topic_id zurückgeben soll, nichts zurück gibt.

Mach mal folgendes. Suche nach

Code: Alles auswählen

$new_topic_id = $db->sql_nextid();
und füge darunter ein

Code: Alles auswählen

				if ( $new_topic_id === FALSE )
				{
				  $sql = "SELECT MAX(topic_id) AS max_id FROM " . TOPICS_TABLE;
				  if ( !$result = $db->sql_query($sql) )
				  {
				    message_die(GENERAL_ERROR, 'Could not obtain next topic id');
				  }
				  $row = $db->sql_fetchrow($result);
				  $new_topic_id = intval($row['max_id']);
				}
Achtung, dieser Code wurde nicht getestet, sondern frei aus dem Kopf geschrieben. Er sollte funktionieren, aber zur Sicherheit mach immer erst ein Backup!

-EDIT- Upsi, ein winziger Fehler war drin. Schnell begradigt. ;)

Gruß,
Tekin

Verfasst: 25.02.2006 00:40
von Leipziger
Danke

aber das hat nicht geholfen gleiche Fehlermeldung.

Mods sind glaube ich -Merge (Beiträge zusammen), DB Maintenance, Chat, ip-tracking-

habe mal alles in diese Datei gepackt.
http://computer.selfhost.tv/forum.zip

Verfasst: 25.02.2006 01:34
von cYbercOsmOnauT
Kleiner Rat, mach mal die config.php aus dem zip heraus. Das was da drin steht, geht keinem ausser Dir was an.

Tekin

Verfasst: 25.02.2006 01:44
von Leipziger
Gut mache ich.

Aber das Passwort stimmte sowieso nicht. :grin:

Aber wo liegt mein Fehler?

Verfasst: 25.02.2006 10:40
von Leipziger
Habs gerade mal getestet Beiträge zusammenfügen funktioniert nur nicht Beiträge teilen da bekomme ich immer die oben genannte Fehlermeldung auch mit dem neuen Code.

Woran kann es liegen?

Verfasst: 26.02.2006 14:03
von Leipziger
Hat den keiner eine Idee?

Über die Brücke des zusammenfügen funktioniert das ja.
Aber es ist doch besser das gleich teilen zu können. Vereinfacht doch de Arbeit. :wink: