Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > สอบถามการเขียน Rss Feed ดึงข้อมูลมาจาก DB แบบ Write ทีละหลายๆไฟล์ตามเงื่อนไข



 

สอบถามการเขียน Rss Feed ดึงข้อมูลมาจาก DB แบบ Write ทีละหลายๆไฟล์ตามเงื่อนไข

 



Topic : 095560



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์




สอบถามนิดนึงครับ
คือว่าเนื่องจาก ผมต้องการเขียน php ให้กลายเป็นไฟล์ xml ครับ
โดย ให้ทำการดึงข้อมูลจาก database มาแสดง และข้อมูลทั้งหมดมี 10 ประเภทอะครับ ต้องการให้แบบว่า ประเภทที่ 1 write ลง 1 ไฟล์ ประเภทที่ 2 ลง 1 ไฟล์ คือของใครของมันอะครับ

ประเภทผมตั้งชื่อใน DB ว่า type_id

นี่คือโค้ดที่ผมดึงข้อมูลทั้งหมดจาก DB เขียนลงเป็นไฟล์เดียว ผมต้องการทำการ Loop ยังไงอะครับ

<?
include('connect.php');
$sql = " SELECT a.news_id as aid, b.date as bdate, a.org  , a.act , a.title , a.per , a.loc, b.url , b.news_name, a.date as adate from news_su  a, news_web b where a.news_id=b.news_id AND a.type_id=b.type_id ";
$charset = "SET NAMES 'utf8'";
mysql_query($charset);
$query = mysql_db_query($dbName,$sql);
$data = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$data .= '<rss version="2.0">'."\n";
$data .= '<channel>'."\n";
$data .= '<title>News Extraction</title>'."\n";
$data .= '<description>News Interesting</description>'."\n";
$data .= '<link>http://su.ac.th</link>'."\n";

while($result = mysql_fetch_array($query)) 


{
$data .= '<item>'."\n";
$data .= '<title>'.$result[news_name].'</title>'."\n";
$data .= '<link>'.$result[url].'</link>'."\n";
$data .= '<pubDate>'.$result[bdate].'</pubDate>'."\n"; //เวลา 
$data .= '<description>'.$result[org].''.$result[act].''.$result[title].''.$result[per].''.$result[loc].''.$result[loc].''.$result[adate].'</description>'."\n";
$data .= '</item>'."\n";
}
$data .= '</channel>'."\n";
$data .= '</rss>'."\n";


$f = fopen( 'rss.xml' , 'w' ); //ส่วนของการสร้างไฟล์ XML
fputs( $f , $data );
fclose( $f );
}


?>




Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-05-22 13:46:30 By : Monkey_CONAN View : 1582 Reply : 18
 

 

No. 1



โพสกระทู้ ( 1,127 )
บทความ ( 2 )



สถานะออฟไลน์


ใช้ if-else เช็คประเภท ก่อน ใช้
$f = fopen( 'rss.xml' , 'w' );

เขียนลง

rss.xml,rss.xml2






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-22 17:38:14 By : iieszz
 


 

No. 2



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : iieszz เมื่อวันที่ 2013-05-22 17:38:14
รายละเอียดของการตอบ ::
ขอตัวอย่างหน่อยได้ไหมค่ะ พอดีลองแล้วมันไม่ได้อะคะ
ไม่รู้ว่าเขียนอะไรผิดไปรึเปล่า

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-22 19:01:27 By : Monkey_CONAN
 

 

No. 3



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

เป็นผู้ชายหรือผู้หญิงครับเนี่ย ผมงง - -
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-22 20:00:50 By : cookiephp
 


 

No. 4



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : cookiephp เมื่อวันที่ 2013-05-22 20:00:50
รายละเอียดของการตอบ ::
พอดีมีเพื่อนใช้ user นี้ด้วยอะค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-22 20:51:44 By : Monkey_CONAN
 


 

No. 5



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


รบกวนชี้แนะหน่อยค่ะ ตอนนี้ยังไม่ได้เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-25 00:43:28 By : Monkey_CONAN
 


 

No. 6



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ไม่ได้ยังไงครับ โค้ดที่ไม่ได้เป็นอย่างไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-25 03:56:52 By : cookiephp
 


 

No. 7



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : cookiephp เมื่อวันที่ 2013-05-25 03:56:52
รายละเอียดของการตอบ ::
ยังไม่สามารถ Write ลงหลายๆไฟล์ได้แบบ Type ใคร Type มันอะค่ะ เช็ค type จาก type_id อะคะ



จากโค้ด
Code (PHP)
<?
include("connect.php");

$sql = " SELECT a.news_id as aid, b.date as bdate, a.org  , a.act , a.title , a.per , a.loc, b.url , b.news_name, a.date as adate, b.type_id from news_su  a, news_web b where a.news_id=b.news_id ";

$charset = "SET NAMES 'utf8'";
mysql_query($charset);
$query = mysql_db_query($dbName,$sql);

$data = '<?xml version="1.0" encoding="UTF-8"?>'."\n";
$data .= '<rss version="2.0">'."\n";
$data .= '<channel>'."\n";
$data .= '<title>News Extraction</title>'."\n";
$data .= '<description>News Interesting</description>'."\n";
$data .= '<link>http://su.ac.th</link>'."\n";
//$data .= '<pubDate>'.date("D, d M Y ").'</pubDate>'."\n";

while($result = mysql_fetch_array($query)) {

$data .= '<item>'."\n";
$data .= '<title>'.$result[news_name].'</title>'."\n";
$data .= '<link>'.$result[url].'</link>'."\n";

$data .= '<pubDate>'.$result[bdate].'</pubDate>'."\n"; //เวลา 

$data .= '<description>'.$result[type_id].''.$result[org].''.$result[act].''.$result[title].'
'.$result[per].''.$result[loc].''.$result[loc].''.$result[adate].'</description>'."\n"; 
$data .= '</item>'."\n";
}
$data .= '</channel>'."\n";
$data .= '</rss>'."\n";
if($result[type_id] == "1")
{
	$f = fopen( 'rss_1.xml' , 'w' ); //ส่วนของการสร้างไฟล์ XML
	fputs( $f , $data );
	fclose( $f );
}
	else
{
	$f = fopen( 'rss_2.xml' , "w"); //ส่วนของการสร้างไฟล์ X
	fputs( $f , $data );
	fclose( $f );
}


?>



ประวัติการแก้ไข
2013-05-26 13:23:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-25 19:05:45 By : Monkey_CONAN
 


 

No. 8



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


รบกวนผู้รู้ช่วยหน่อยนะคะ
ด่วนๆมากเลยค่ะ T T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 15:20:39 By : Monkey_CONAN
 


 

No. 9



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ลองดูครับ
Code (PHP)
<?php
include("connect.php");

//set encoding
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");

$sql = " SELECT a.news_id as aid, b.date as bdate, a.org  , a.act , a.title , a.per , a.loc, b.url , b.news_name, a.date as adate, b.type_id from news_su  a, news_web b where a.news_id=b.news_id ";
mysql_select_db($dbName);
$query = mysql_query($sql);

$head = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
	<rss version="2.0">
		<channel>
			<title>News Extraction</title>
			<description>News Interesting</description>
			<link>http://su.ac.th</link>
XML;

$type = array();

while($result = mysql_fetch_array($query)) {
	if(!array_key_exists($result['type_id'])) 
		$type[$result['type_id']] = '';
	$type[$result['type_id']] .= sprintf('
			<item>
				<title>%s</title>
				<link>%s</link>
				<pubDate>%s</pubDate>
				<description>%s %s %s %s
				%s %s %s %s</description>
			</item>',
			$result['news_name'],
			$result['url'],
			$result['bdate'],//เวลา 
			$result['type_id'],
			$result['org'],
			$result['act'],
			$result['title'],
			$result['per'],
			$result['loc'],
			$result['loc'],
			$result['adate']
			);
}
$foot = <<<XML
		</channel>
	</rss>
XML;

foreach($type AS $key => $data){
	$f = fopen('rss_'.$key.'.xml', 'w');
	fputs($f, $head.$data.$foot);
	fclose( $f );
}
?>



ประวัติการแก้ไข
2013-05-26 15:49:07
2013-05-26 18:54:05
2013-05-26 20:00:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 15:47:37 By : itpcc
 


 

No. 10



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : itpcc เมื่อวันที่ 2013-05-26 15:47:37
รายละเอียดของการตอบ ::
error 'Fatal error: Call to undefined function array_key_exist() in C:\AppServ\www\rss.php on line 24' อะคะ
รายละเอียดของการตอบ ::

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 18:28:02 By : Monkey_CONAN
 


 

No. 11



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 10 เขียนโดย : Monkey_CONAN เมื่อวันที่ 2013-05-26 18:28:02
รายละเอียดของการตอบ ::
ผมตกตัว s ของ array_key_exists น่ะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 18:54:48 By : itpcc
 


 

No. 12



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : itpcc เมื่อวันที่ 2013-05-26 18:54:48
รายละเอียดของการตอบ ::
พี่ค่ะ ข้อมูลมันไม่ Write ลงไฟล์อะค่ะ
ต้องใส่แบบนี้ลงไปด้วยใช่ปะค่ะ
$data .= '<item>'."\n";
$data .= '<title>'.$result[news_name].'</title>'."\n";
$data .= '<link>'.$result[url].'</link>'."\n";

$data .= '<pubDate>'.$result[bdate].'</pubDate>'."\n"; //เวลา

$data .= '<description>'.$result[type_id].''.$result[org].''.$result[act].''.$result[title].'
'.$result[per].''.$result[loc].''.$result[loc].''.$result[adate].'</description>'."\n";
$data .= '</item>'."\n";

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 19:26:29 By : Monkey_CONAN
 


 

No. 13



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ลอง echo $head.$data.$foot; แทน fputs ดูหน่อยครับ ผมไมแน่ใจว่ามันเป็นไปตามที่คุณต้องการมั้ย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 19:49:16 By : itpcc
 


 

No. 14



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : itpcc เมื่อวันที่ 2013-05-26 19:49:16
รายละเอียดของการตอบ ::
ถ้าเปิดจาก notepad ข้อมูลขึ้นค่ะ แต่
ถ้าเปิดจาก IE ขึ้นแบบนี้อะค่ะ
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.


--------------------------------------------------------------------------------

End tag 'item' does not match the start tag 'description'. Error processing resource 'file:///C:/AppServ/www/rss_1.xml'. L...

</item>
-----^




ประวัติการแก้ไข
2013-05-26 19:58:06
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 19:56:39 By : Monkey_CONAN
 


 

No. 15



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 14 เขียนโดย : Monkey_CONAN เมื่อวันที่ 2013-05-26 19:56:39
รายละเอียดของการตอบ ::
อ่อ รู้แล้ว
ผมลืมปิดแท็ก description ครับ โทษที ผมสะเพร่าเอง
ตรงบรรทัดที่ 33 อ่ะครับ เปลี่ยนเป็น %s %s %s %s</description> ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 20:01:48 By : itpcc
 


 

No. 16



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วนะค่ะ
ขอบคุณค่ะ
ตรง <description> ขาดเครื่องหมาย '/'
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 20:02:44 By : Monkey_CONAN
 


 

No. 17



โพสกระทู้ ( 86 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : itpcc เมื่อวันที่ 2013-05-26 20:01:48
รายละเอียดของการตอบ ::
เจอพร้อมกันพอดี ขอบคุณมากๆนะค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 20:03:14 By : Monkey_CONAN
 


 

No. 18



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ตอบความคิดเห็นที่ : 17 เขียนโดย : Monkey_CONAN เมื่อวันที่ 2013-05-26 20:03:14
รายละเอียดของการตอบ ::
ใช้ได้ยังครับ?

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-26 20:04:19 By : itpcc
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการเขียน Rss Feed ดึงข้อมูลมาจาก DB แบบ Write ทีละหลายๆไฟล์ตามเงื่อนไข
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่