1 頁 (共 2 頁)

[問題]刪文後總文章數不變

發表於 : 2003-02-26 20:30
athlon
os:win xp (p) sp-1
mysql 版本3.23.54-nt
phpbb2 版本2.0.4


問題:
帖子發出後有回應文章,刪除其中的回應文章,文章總數卻不會改變,導致頁數計算錯誤,而顯示"這個主題沒有回覆文章"


demo:
http://61.70.105.162/evil/viewforum.php?f=20
[入學通知]新會員簽到處 [ 沒有報到者?殺! ]

請求問題解決之道,謝謝

發表於 : 2003-02-26 22:25
Mac
不知道到後台的"版面管理"使用重整對應資料有沒有用 :?:

~Mac

發表於 : 2003-02-26 22:35
athlon
ycl6 寫:不知道到後台的"版面管理"使用重整對應資料有沒有用 :?:

~Mac
很遺憾的
沒有作用...

發表於 : 2003-03-02 03:00
athlon
os:win xp (p) sp-1
mysql 版本3.23.54-nt
phpbb2 版本2.0.4


問題:
帖子發出後有回應文章,刪除其中的回應文章,文章總數卻不會改變,導致頁數計算錯誤,而顯示"這個主題沒有回覆文章"


那我想請求誰能教我從資料庫修正的方法好嗎?因為已經有幾篇loss到好幾頁了...希望能藉由資料庫的修改,將這個問題更正回來~(多謝前輩的教導,已經會了,不過從資料庫修正還是治標不治本ㄚ~)

請問...還是我文章發錯地方或列入黑名單了嗎?所以...才沒有人願意理我 :cry:

發表於 : 2003-06-10 16:28
athlon
我發覺這個問題不止出現在文章的回覆數統計出現錯誤
就連版面的主題也會因為刪除的關係而導致最後面幾頁沒有主題
換言之,就是統計數字完全癱瘓了...
嗚~快半年了~都沒有人理我~

重新補上
●架設主機作業系統:Windows(Xp Pro
●快速架站程式:Appserv
●免費空間連結:掛站中...
●您的上網方式:giga 1.5m / 38xk ADSL
●您安裝的程式:論壇架設寶典中的...
●您的 phpBB2 版本:phpBB (2.0.4)。
●錯誤代碼:沒有錯誤代碼
●錯誤狀態:
I.版面的文章數計算錯誤
第一頁...正常沒有問題
圖檔
但是後面幾頁卻是空的頁面...
圖檔
II.文章內回覆的總數計算錯誤
主題看起來及回覆數都無異,不過確實回覆的文章數卻遠小於文章後統計的2836
圖檔
導致後面幾頁都變成這個情形\r
圖檔

發表於 : 2003-06-10 18:37
Mac
不是沒人理你,是也沒有人知道解決辦法

~Mac

發表於 : 2003-06-10 18:50
athlon
喔~原來如此~
感謝感謝~

發表於 : 2003-06-10 19:04
幻狼神威
這算是小bug一個,就我翻過的東西到現在,目前真的是無解.......

那和刪文無關,而是剛好到一頁塞滿,就會多出來一頁....... ┐(▔▽▔)┌

發表於 : 2003-06-11 22:58
依夢兒
這樣的情形,我之前也遇過

前一陣子,我租用的虛擬主機的SMTP伺服器出了問題
網友發送文章後,系統並不會顯示成功發送文章的訊息,而是顯示Failed sending email一類的錯誤訊息....
(為什麼發送文章會跟SMTP扯上關係,我並不清楚
我只確定,我並沒有要求論壇寄送回覆通知的e-mail給我喲!!
結果發送文章時,還是會出現Failed sending email的錯誤訊息)
文章是發送出去了,但是該主題在版面上顯示的回覆數並沒有增加
也就是說,該主題在版面上顯示的回覆數,和實際的回覆數,是有出入的
於是系統在產生頁數的時候,就有可能誤判\r
所以當你點選最後一頁時,系統會顯示沒有回覆文章

除了SMTP有問題
論壇操作不當,或是伺服器當機,也都有可能造成這樣的怪現象

小弟的解決方法,就是自己到phpMyAdmin,手動將回覆數修正\r
好在後來換了虛擬主機後,SMTP就不曾再出問題了
網友發送文章時,系統也都能正確的將回覆數回傳到資料庫

發表於 : 2003-06-12 03:11
athlon
我試過我修復完畢後...再次砍文的話\r
還是會再次造成文張計數錯誤...
~T___T~
好辛酸ㄚ~

發表於 : 2003-06-12 07:25
天地一沙鷗
phhBB 有個蠻爛的設計,就是他的 message_die 沒做 database rollback 的動作,這情況下 database update 比如 post 一個文張到一半有錯誤,時常文張有進 database 但文張計數沒更新。

這個會不會也是類似問題。

發表於 : 2003-06-13 17:23
athlon
我想應該不是...因為db也沒變...
關於您提的那個問題我倒是沒有注意過

發表於 : 2003-08-15 15:28
ETERNAL
athlon:

我論壇也遇到這樣的情況,回覆數跟實際文章數不一樣\r
導致分頁不正常
但是我在測試刪文等等都很正常,數字會減少

不知道是什麼原因造成我數量不對..

發表於 : 2003-08-15 17:21
ETERNAL
剛剛花了些時間看了一下
我猜發生原因大概是這樣\r

代碼: 選擇全部

	$sql = ($mode != "editpost") ? "INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '$post_username', $current_time, '$user_ip', $bbcode_on, $html_on, $smilies_on, $attach_sig)" : "UPDATE " . POSTS_TABLE . " SET post_username = '$post_username', enable_bbcode = $bbcode_on, enable_html = $html_on, enable_smilies = $smilies_on, enable_sig = $attach_sig" . $edited_sql . " WHERE post_id = $post_id";
	if (!$db->sql_query($sql, BEGIN_TRANSACTION))
	{
		message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
	}

	if ($mode != 'editpost')
	{
		$post_id = $db->sql_nextid();
	}

	$sql = ($mode != 'editpost') ? "INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$post_subject', '$bbcode_uid', '$post_message')" : "UPDATE " . POSTS_TEXT_TABLE . " SET post_text = '$post_message',  bbcode_uid = '$bbcode_uid', post_subject = '$post_subject' WHERE post_id = $post_id";
	if (!$db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Error in posting', '', __LINE__, __FILE__, $sql);
	}
就像天地一沙鷗說的一樣\r
當用戶發表文章時在POSTS_TABLE塞了資料進去\r
但是在POSTS_TEXT_TABLE出錯沒塞入資料,或者塞到一半主機shutdownd等等其他原因..

變成在後端重整也沒辦法更新文章數(因為是根據POSTS_TABLE來判斷文章數量)

解決方法可以用我下面方式

編輯includes/functions_admin.php

find

代碼: 選擇全部

	  	case 'forum':
在下面加入\r

代碼: 選擇全部

			$del_id="";
			$sql = "SELECT post_id,topic_id FROM " . POSTS_TABLE . "  
				WHERE forum_id = $id";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not get post ID', '', __LINE__, __FILE__, $sql);
			}
			while( $row = $db->sql_fetchrow($result) )
			{
				$sql = "SELECT post_id 	FROM " . POSTS_TEXT_TABLE . "  
					WHERE post_id = $row[post_id]";
				if ( !($result1 = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, "Could not get post_txt ID", '', __LINE__, __FILE__, $sql);
				}
				if (!$row1 = $db->sql_fetchrow($result1))
				{
					$del_id.=",".$row[post_id];
				}
			}
			$del_id=substr($del_id,1,strlen($del_id));
			$sql="delete from ".POSTS_TABLE." where post_id in(".$del_id.")";
			$db->sql_query($sql);
			unset($del_id);

修改完畢save / close

然後進入管理介面,在版面管理的地方在做一次"重整對應資料"!!
就可以把實際文章數跟統計數字修正完畢\r

ps.
這段程式碼會把你所選擇的版面,重頭到尾check過一次\r
假如你的版面有1萬篇文章,會跑1萬次迴圈..

所以在使用時請自行評估

發表於 : 2003-09-05 11:43
pcsony
:lol:

非常感謝 ETERNAL 兄的熱情分享方法

個人論壇長久無法解決的問題終於解決\r

在此致上個人最大的敬意與謝意!