ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: ฟาร์มเฮ้า ที่ 15 ตุลาคม 2011, 04:04:27



หัวข้อ: ท่านใดเคยเขียนสคริปตั้งกระทู้ใหม่ smf โดยแทรกจาก mysql บ้างครับ
เริ่มหัวข้อโดย: ฟาร์มเฮ้า ที่ 15 ตุลาคม 2011, 04:04:27
พอดีตอนนี้ใช้ smf 2.0 อยู่ จะเขียนสคริปให้มันอัพเดทเว็บเองอัตโนมัติ โดยผ่าน cronjob

เวลาจะใส่ข้อมูลเลยจำเป็นต้องแทรกผ่าน mysql ผมเป็นมือใหม่ smf 2.0 ด้วย เท่าที่ลองแกะดู ผมต้องแทรกข้อมูลใส่ 2 ตารางนี้

smf_messages (ใส่รายละเอียดข้อความต่าง ๆ)
smf_topics (ใส่เพื่อให้ smf รู้ว่า ข้อความที่เท่าไรจาก smf_messages เป็นหัวข้อกระทู้)

ผมแทรกไปแค่ 2 ตารางนี้เองอ่ะครับ ไม่ทราบว่ามันมีตารางอื่นที่เชื่อมโยงกันอยู่ด้วยหรือป่าวครับ กลัวว่าถ้าใส่ไปไม่ครบเดี๋ยวระยะยาวฐานข้อมูลมันจะเละอ่ะครับ ข้อมูลเริ่มเยอะแล้วด้วย

ท่านใดที่เคยเขียนสคริปแนวนี้ รบกวนช่วยแนะำนำผมหน่อยนะครับผม

ขอบคุณล่วงหน้าเลยนะครับ


หัวข้อ: Re: ท่านใดเคยเขียนสคริปตั้งกระทู้ใหม่ smf โดยแทรกจาก mysql บ้างครับ
เริ่มหัวข้อโดย: QuickHostBiz ที่ 15 ตุลาคม 2011, 04:07:54
อ่านจาก source เอาเลยครับ ไล่ไปทุกไฟล์ที่ถูก include


หัวข้อ: Re: ท่านใดเคยเขียนสคริปตั้งกระทู้ใหม่ smf โดยแทรกจาก mysql บ้างครับ
เริ่มหัวข้อโดย: Putter™ ที่ 15 ตุลาคม 2011, 04:14:47

   
โค๊ด:
	$this->query("SET NAMES UTF8");
$this->query("INSERT INTO smf_topics (ID_BOARD, ID_MEMBER_STARTED, ID_MEMBER_UPDATED, numViews) VALUES ('$bid', '$authorid', '$authorid', '$views')");
$tid = $this->get_last_id("smf_topics","ID_TOPIC");
$this->query("INSERT INTO smf_messages (ID_TOPIC, ID_BOARD, posterTime, ID_MEMBER, subject, posterName, PosterEmail, posterIP, smileysEnabled, body, icon) VALUES ('$tid', '$bid', '$timestamp', '$authorid', '$subject', '$author', '$email', '$ip', '$smiley', '$message', '$icon')");
$mid = $this->get_last_id("smf_messages","ID_MSG");
$this->query("UPDATE smf_topics SET ID_FIRST_MSG='$mid', ID_LAST_MSG='$mid' WHERE ID_TOPIC='$tid'");
$this->query("UPDATE smf_messages SET ID_MSG_MODIFIED='$mid' WHERE ID_MSG='$mid'");
$this->query("UPDATE smf_boards SET ID_LAST_MSG='$mid', ID_MSG_UPDATED='$mid', numTopics=numTopics+1, numPosts=numPosts+1 WHERE ID_BOARD='$bid'");
$this->query("UPDATE smf_members SET posts=posts+1 WHERE ID_MEMBER='$authorid'");

อันนี้เป็น 1.1.x นะครับ พอดีทำคลาสไว้ใช้นานแล้วครับ ลองดูครับ


หัวข้อ: Re: ท่านใดเคยเขียนสคริปตั้งกระทู้ใหม่ smf โดยแทรกจาก mysql บ้างครับ
เริ่มหัวข้อโดย: ฟาร์มเฮ้า ที่ 15 ตุลาคม 2011, 04:25:27

   
โค๊ด:
	$this->query("SET NAMES UTF8");
$this->query("INSERT INTO smf_topics (ID_BOARD, ID_MEMBER_STARTED, ID_MEMBER_UPDATED, numViews) VALUES ('$bid', '$authorid', '$authorid', '$views')");
$tid = $this->get_last_id("smf_topics","ID_TOPIC");
$this->query("INSERT INTO smf_messages (ID_TOPIC, ID_BOARD, posterTime, ID_MEMBER, subject, posterName, PosterEmail, posterIP, smileysEnabled, body, icon) VALUES ('$tid', '$bid', '$timestamp', '$authorid', '$subject', '$author', '$email', '$ip', '$smiley', '$message', '$icon')");
$mid = $this->get_last_id("smf_messages","ID_MSG");
$this->query("UPDATE smf_topics SET ID_FIRST_MSG='$mid', ID_LAST_MSG='$mid' WHERE ID_TOPIC='$tid'");
$this->query("UPDATE smf_messages SET ID_MSG_MODIFIED='$mid' WHERE ID_MSG='$mid'");
$this->query("UPDATE smf_boards SET ID_LAST_MSG='$mid', ID_MSG_UPDATED='$mid', numTopics=numTopics+1, numPosts=numPosts+1 WHERE ID_BOARD='$bid'");
$this->query("UPDATE smf_members SET posts=posts+1 WHERE ID_MEMBER='$authorid'");

อันนี้เป็น 1.1.x นะครับ พอดีทำคลาสไว้ใช้นานแล้วครับ ลองดูครับ

โอ้วว ขอบคุณท่าน Putter มาก  ๆ เลยครับ มีประโยชน์มาก ๆ เลย แต่ตัว 2.0 รู้สึกจะมีอีกตารางที่เกี่ยวข้องกันคือ smf_log_digest ไม่รู้ว่าถ้าไม่ใส่ไปด้วย จะมีปัญหาอะไรตามมาหรือป่าว

ขอบคุณท่าน TVmunk ด้วยครับ สำหรับคำแนะนำ


หัวข้อ: Re: ท่านใดเคยเขียนสคริปตั้งกระทู้ใหม่ smf โดยแทรกจาก mysql บ้างครับ
เริ่มหัวข้อโดย: Putter™ ที่ 15 ตุลาคม 2011, 04:30:08
ไม่แน่ใจเหมือนกันคับ ผมเคยเขียนแต่ 1.1.x เดี๋ยวถ้าลองทำ 2.x ได้แล้ว รบกวนมาบอกด้วยนะครับ ว่าต้องเพิ่มอะไรหรือเปล่า  :P


หัวข้อ: Re: ท่านใดเคยเขียนสคริปตั้งกระทู้ใหม่ smf โดยแทรกจาก mysql บ้างครับ
เริ่มหัวข้อโดย: ฟาร์มเฮ้า ที่ 15 ตุลาคม 2011, 04:40:10
ตอนนี้ผมก็ ใส่ข้อมูลไปแค่ 2 ตารางมันก็ขึ้นนะครับ smf_messages กับ smf_topics อ่ะครับ

แต่ตอนนี้เห็นมันมีตาราง smf_log_search_subjects กับ smf_log_digest มาเกี่ยวข้องกับข้อมูลตอนที่โพสผ่านฟอร์มปกติด้วยน่ะครับ เลยไม่แน่ใจว่าจะสำคัญอะไรหรือป่าว เพราะเห็นชื่อตารางมีคำว่า log อยู่ น่าจะเก็บค่าไว้ดูสถิติเฉย ๆ หรือป่าว

ยังไงเดี๋ยวผมลองเอาไปรันบนเว็บจริงสักพัก ถ้าไม่มีปัญหาอะไรจะมาอัพเดทเพิ่มนะครับ