ข่าว IT ล่าสุด
ถูกใจอย่าลืม Like Fanpage
ถามเรื่องการดึงหัวข้อใหม่ของ smf มาแสดงแบบหน้าแรกเว็บนี้หน่อยครับ
แสดงแล้ว 50598 ครั้ง /
ตุลาคม 01, 2010, 13:59:50

King69

ออฟไลน์
กระทู้ : 7
คะแนนขอบคุณ : 0
 มาจากไทยเสียวนะครับ ขอสอบถามการดึงหัวข้อใหม่มาแสดงตามแต่ละหมวดหมู่แบบหน้าเว็บนี้หน่อยครับหน่อยครับ  ขอแบบละเอียดหน่อยนะครับ 

ขอบคุณครับ  :-*


Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 01, 2010, 14:16:00
อันดับแรกสร้างไฟล์ ขึ้น PHP ขึ้นมา 1 ไฟล์เช่น  it.php  เอาไว้ตำแหน่งเดียวกับไฟล์ ssi_examples.php ของบอร์ด

แล้ว copy โ๊ค๊ดนี้ลงไป

ของผมในตัวอย่างนี้ จะดึงบอร์ด it มาโชว์ 10 กระทู้ล่าสุดนะครับ แล้วบอร์ดข่าว it ของผมรหัสบอร์ดคือ 23

โค๊ด: [Select]

$list = "10"; // ต้องการให้โชว์กี่กระทู้ล่ะ ใส่เข้าไปได้เลย

$sboard = "1"; // ใส่ 0 ถ้าต้องการกระทู้จากบอร์ดทุกบอร์ด  และใส่ 1 ถ้าต้องการเจาะจงบอร์ด


if (empty($board)) {
$board = "23.0"; // เปลี่ยนตรงนี้ถ้าอยากให้บอร์ดไหนเป็นค่า default
}


?>










:: <?=$list ?> กระทู้ล่าสุดจากบอร์ด it







include("Settings.php");

$host = $db_server;
$user = $db_user;
$pass = $db_passwd;
$database = $db_name;
$prefix = $db_prefix."topics";
$prefix2 = $db_prefix."messages";

@mysql_connect($host,$user,$pass) or die("ขออภัยค่ะ ขณะนี้ไม่สามารถติดต่อฐานข้อมูลได้ กรุณาเข้าชมใหม่ภายหลัง");
if ($sboard=="0") {
$Sql = "SELECT * FROM $prefix order by ID_TOPIC DESC limit 0,$list ";
} elseif ($sboard=="1") {
$Sql = "SELECT * FROM $prefix where ID_BOARD='$board' order by ID_TOPIC DESC limit 0,$list ";
}
$result = mysql_db_query($database,$Sql);
$nrow = mysql_num_rows($result);
while ($num = mysql_fetch_array($result)) {

$tid = $num["ID_TOPIC"];
$bid = $num["ID_BOARD"];
$fid = $num["ID_FIRST_MSG"];
$view = $num["numViews"];
$reply = $num["numReplies"];

$msql = "select * from $prefix2 where ID_MSG='$fid'";
$mresult = mysql_db_query($database,$msql);
$marr = mysql_fetch_array($mresult);
$title = $marr["subject"];
$poster = $marr["posterName"];
$today = date("d M Y");
$time = date("d M Y", $marr["posterTime"]);
if ($today==$time) {
$time = date("วันนี้ .", $marr["posterTime"]);
} else {
$time = date("เมื่อวานนี้ .", $marr["posterTime"]);
}
$bgc = $bgc+1;
$title = str_replace('[it]?', '[it] ', $title);
echo '



';
}

?>

'.$title.' &#3650;&#3604;&#3618; '.$poster.'






เสร็จเรียบร้อย เราก็ไปแก้หน้า index ของเราหรือหน้าแรกที่ต้องการให้แสดงนั่นเอง

แล้วเพิ่มโค้ดดังนี้

โค๊ด: [Select]
    $data = file_get_contents('http://it4x.com/forum/it.php');
$data = iconv('windows-874','UTF-8',$data);
   echo $data;
  ?>


ตรงตำแหน่งไฟล์  it.php  ก็แก้เป็นที่คุณอัพลงไปครับ แค่นี้หล่ะ ขอให้สนุกครับ

แต่ถ้ามีหลายๆบอร์ดหล่ะ

ก็สร้างแบบเดียวกันครับ แต่เปลี่ยนชื่อไฟล์จาก it.php เป็นชื่อ อื่นๆ แล้วก็ get_contents หลายๆไฟล์ครับ
« แก้ไขครั้งสุดท้าย: ตุลาคม 01, 2010, 14:21:42 โดย Moshi »

ßë©äûšë

ออฟไลน์ ( แค่นี้ยังอ่อนหัดอยู่นะ )
กระทู้ : 1,534
คะแนนขอบคุณ : 13
เลขเด็ด เลขเด็ด เลขดัง เกร็งเลข ใบ้หวย ประจำงวดนี้ ที่นี่ อาจารย์ตี๋
ตุลาคม 01, 2010, 15:23:15
โอ้โฮเฮะ ตามมาจากไทยเสียวด้วย นึกว่าจะสิงอยู่ที่นั่นกันตลอดไม่ไปไหนกันแล้ว ;)

King69

ออฟไลน์
กระทู้ : 7
คะแนนขอบคุณ : 0
ตุลาคม 01, 2010, 16:28:03
ลองแล้วมันขึ้น

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/user/domains/xxxxxx.com/public_html/index.php  on line 71

Warning: file_get_contents([direct]http://xxxxxx.com/webboard/news.php[/direct]) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /home/user/domains/xxxxxx.com/public_html/index.php on line 71

พอดีจะเอาข่าวมาแสดงอะครับ เลยสร้างไฟล์ news.php วางไว้ที่เดี่ยวกับ ssi_examples.php  แล้ว  เปลี่ยนค่าตามบอร์ดแล้ว  :P

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 01, 2010, 16:42:01
webboard ใช้อยู่ตำแหน่งนี้ป่าว [direct=http://www.domainxxx.com/weboard/]www.domainxxx.com/weboard/[/direct]

็Host ที่ใช้ PHP4 หรือ PHP5 ครับ

จากที่มันฟ้องอย่างนั้นแสดงว่า เจ้าของโฮสเค้าไม่เปิดให้ใช้ function.file-get-contents อ่ะครับ

งั้นแก้ง่ายๆ แต่รูปแบบมันอาจจะออกมาไม่สวยอ่ะครับ โดยการ

โค๊ด: [Select]
« แก้ไขครั้งสุดท้าย: ตุลาคม 01, 2010, 16:44:18 โดย Moshi »

King69

ออฟไลน์
กระทู้ : 7
คะแนนขอบคุณ : 0
ตุลาคม 01, 2010, 16:53:02
พอใส่

โค๊ด: [Select]

มันขึ้น

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/user/domains/xxxxxx.com/public_html/index.php  on line 70

Warning: include([direct]http://xxxxx.com/webboard/news.php[/direct]) [function.include]: failed to open stream: no suitable wrapper could be found in /home/user/domains/xxxxxx.com/public_html/index.php on line 70

Warning: include() [function.include]: Failed opening '[direct]http://xxxxx.com/webboard/news.php'[/direct] for inclusion (include_path='.:/usr/local/lib/php') in /home/user/domains/xxxxxx.com/public_html/index.php on line 70


เริ่มงง  :P

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 01, 2010, 17:09:56
กำจิงๆ งั้น Hosting ที่ใช้อยู่ PHP4 หรือ PHP5 ครับ ใช้ Hosting ของอะไรอยู่อ่ะ

ตอนนี้ก็แก้ขัดไปก่อนนะครับ

โค๊ด: [Select]

อย่าลืม ตอบผมหล่ะ เดียวผมหาคำสั่งขอ PHP5 มาก่อน ลืมละเขียนไง
« แก้ไขครั้งสุดท้าย: ตุลาคม 01, 2010, 17:26:28 โดย Moshi »

King69

ออฟไลน์
กระทู้ : 7
คะแนนขอบคุณ : 0
ตุลาคม 01, 2010, 18:19:32
เป็น php5 ครับผม

เอาโค๊ด rep ด้านบนไปใส่มันก็ขึ้นแล้วนะครับ

แต่มันไม่ค่อยสวยแหะ   :P

เพราะสี bg มันเป็นสีฟ้าๆ  เรามีวิธีใส่สีให้ bg เป็นสีเดียวกับพื้นหลังบน iframe ป่าวครับ

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 01, 2010, 23:27:16
ลองนี่ดูนะครับ PHP5

โค๊ด: [Select]
        $data = @file_get_contents('http://it4x.com/forum/it.php');
    $data = iconv('windows-874','UTF-8',$data);
      echo $data;
  ?>

ถ้าไม่ได้ยังไงจะมาแก้ไขให้อีกทีครับ

King69

ออฟไลน์
กระทู้ : 7
คะแนนขอบคุณ : 0
ตุลาคม 01, 2010, 23:53:26
ลองใช้โค๊ดตามrepบนไม่ได้แหะ ไม่แสดงอะไรเลย  หรือว่าได้แต่iframe อะครับ  :P

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 02, 2010, 07:45:12
เข้าใจแล้วครับ Host ที่ใช้อยู่เค้าไม่เปิด ฟังก์ชั่น File Get Content ให้อ่ะครับ

งั้นแนะนำให้ใช้ Iframe ใสเอาครับ

>> [direct]http://www.it4x.com/forum/index.php/topic,7332.0.html[/direct]


ßë©äûšë

ออฟไลน์ ( แค่นี้ยังอ่อนหัดอยู่นะ )
กระทู้ : 1,534
คะแนนขอบคุณ : 13
เลขเด็ด เลขเด็ด เลขดัง เกร็งเลข ใบ้หวย ประจำงวดนี้ ที่นี่ อาจารย์ตี๋
ตุลาคม 02, 2010, 10:58:03
โอ้โฮเฮะ WM เรา PHP แน่นจริงๆ +1 เลยละกัน :D

King69

ออฟไลน์
กระทู้ : 7
คะแนนขอบคุณ : 0
ตุลาคม 04, 2010, 14:03:27
ขอต่ออีกนิดนะครับ   ผมลองใช้โค๊ด

โค๊ด: [Select]
include('webboard/news.php');
?>


ดึงมาแสดงได้แล้วครับ   แต่ปัญหามันอยู่ตรงที่ว่า  ผมต้องการดึงจากหลายหมวดหมู่มาแสดง แต่ทำไมมันแสดงหมวดหมู่เดียวกันหมดเลยอ่ะครับ



จากรูปจะเห็นว่าข่าวกีฬากับตารางการแข่งขันเหมือนดึงมากันเลย คือเป็นกระทู้จากหมวดหมู่กีฬา ทั้งๆที่ตรงตารางการแข่งขัน ผม include มาจากอีกไฟล์นึง (webboard/program.php)  แต่มันก็โชว์ของ news.php หมดเลย แต่ถ้าเราเอา program.php ไว้ด้านบน ก็จะแสดงกระทู้จากหมวดหมู่ตารางการแข่งขันแทนทั้งหมด (คือขึ้นอยู่กับinclude ตัวแรกคือไฟล์อะไรอะครับ  ถ้าผมอยากให้มันแสดงแต่ละหมวดหมู่ต้องทำยังไงหว่า  งง  :-X :-X

Moshi

ออฟไลน์
กระทู้ : 16,996
คะแนนขอบคุณ : 45
it4x สังคมแห่งการเรียนรู้
ตุลาคม 04, 2010, 17:12:50
อ่าเยี่ยมเลยครับ ตอนนี้ ใช้ฟังค์ชั่น include ได้แล้ว น่าจะใช้ Get Content ได้แล้วเหมือนกันนะครับ

แนะนำให้ใช้ get content แทนนะครับ

เพราะ Include นี่เป็นการเรียก ข้อมูลทั้งหมดในไฟล์มาแสดง ซึ่งมันทำให้เกิด reload ข้อมูลของไฟล์แรก หมวดหมู่มันจึงไม่เปลี่ยนอ่ะครับ

จึงแนะนำให้ get content อ่ะครับ

King69

ออฟไลน์
กระทู้ : 7
คะแนนขอบคุณ : 0
ตุลาคม 06, 2010, 12:36:28
เราจะใช้คำสั่ง get content ยังไงอะครับ  :P

 

ด้วยฟังค์ชั่น ตอบด่วน คุณสามารถใช้โค๊ดและ เครื่องหมายแสดงอารมณ์ได้ เหมือนการตั้งกระทู้ธรรมดา แต่สามารถทำได้สะดวกกว่า

ระวัง: หัวข้อนี้ไม่มีการอัพเดทมานานถึง 120 วัน

แจ้งเตือน: โพสของคุณจะไม่แสดงจนกว่าผู้ดูแลจะอนุมัติ.
ชื่อ: อีเมล์: