CI从数据库提取数据在网页显示的问题
控制器中的一个方法:function rss() {
$this->load->model('activity_model');
$result = $this->activity_model->lists();
//define channel
$rss = new UniversalFeedCreator();
//$rss->useCached();
$rss->title="Personal News Site";
$rss->description="daily news from me";
$rss->link="http://mydomain.net/";
$rss->syndicationURL="http://mydomain.net/";
foreach($result as $row) {
//channel items/entries
$item = new FeedItem();
//$item->title = "test berita pertama";
$item->title = $row['name'];
$item->link = "http://events.mike/activity/ID";
$item->description = $row['name'];
$item->source = "http://events.mike";
// $item->author = $row['username'].' '.$row['email'];
$item->author = $row['username'];
$item->authorEmail = $row['email'];
//$item->authorEmail = $row['email'];
//optional enclosure support
/*$item->enclosure = new EnclosureItem();
$item->enclosure->url='http://mydomain.net/news/picture.jpg';
$item->enclosure->length="65905";
$item->enclosure->type='image/jpeg';*/
$rss->addItem($item);
}
}
模型中的lists方法:
function lists($where = '', $order = '', $limit = 10,$like = '', $offset = 0) {
if (is_array($where)) {
$where = " AND a.`{$where['field']}` = {$where['value']}";
} elseif ($where != '') {
$where = " AND {$where}";
}
if (is_array($order)) {
$order = " ORDER BY `{$order['field']}` {$order['type']}";
} elseif ($order != '') {
$order = " ORDER BY {$order}";
}
if(is_array($like)){
$like = " AND a.`{$like['field']}` like {$like['value']}";
}elseif ($like != ''){
$like = " AND {$like}";
}
$limit_str = '';
if($limit > 0){
$limit_str = " LIMIT {$offset},{$limit} ";
}
$sql =<<<end
SELECT a.*, m.`alias`,(SELECT `username` FROM user WHERE `id` = a.`user_id`) AS username,(SELECT `email` FROM user WHERE `id` = a.`user_id`) AS email
FROM `events_dev`.`activity` a, `events_dev`.`model` m
WHERE a.model_id = m.id
{$where} {$like}
{$order}
{$limit_str};
end;
return$this->db->query($sql)->result_array();
}
变量的声明:
class FeedItem extends HtmlDescribable {
var $title, $description, $link;
var $author, $authorEmail, $image, $category, $comments, $guid, $source, $creator;
var $date;
var $enclosure;
var $additionalElements = Array();
// var $source;
}
数据库中的几组数据,在firefox中,可以循环显示出来,但是邮箱地址和用户名不显示。
在opera中只显示一组数据,但是用户名以及邮箱都会显示出来。这是个什么原因呢。查看页面代码中,是有用户名跟邮箱的信息的。。
附图:
这个应该是你页面html代码问题了
你页面有没有用js? html代码的问题 回复 jeongee 的帖子
页面代码:<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt (info@mypapit.net)" -->
<?xml-stylesheet href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Personal News Site</title>
<subtitle>daily news from me</subtitle>
<link rel="alternate" type="text/html" href="http://mydomain.net/"/>
<id>http://mydomain.net/</id>
<updated>2011-05-12T16:21:56+01:00</updated>
<generator>FeedCreator 1.7.2-ppt (info@mypapit.net)</generator>
<link rel="self" type="application/atom+xml" href="http://mydomain.net/" />
<entry>
<title>一次投票</title>
<link rel="alternate" type="text/html" href="http://events.mike/activity/ID"/>
<published>2011-05-12T08:21:56+01:00</published>
<updated>2011-05-12T08:21:56+01:00</updated>
<id>http://events.mike/activity/ID</id>
<author>
<name>admin</name>
</author>
<summary>一次投票</summary>
</entry>
<entry>
<title>别动,就现在你的左手放在那里?</title>
<link rel="alternate" type="text/html" href="http://events.mike/activity/ID"/>
<published>2011-05-12T08:21:56+01:00</published>
<updated>2011-05-12T08:21:56+01:00</updated>
<id>http://events.mike/activity/ID</id>
<author>
<name>puyo</name>
</author>
<summary>别动,就现在你的左手放在那里?</summary>
</entry>
<entry>
<title>当有人追你,你不喜欢对方时,会怎样?</title>
<link rel="alternate" type="text/html" href="http://events.mike/activity/ID"/>
<published>2011-05-12T08:21:56+01:00</published>
<updated>2011-05-12T08:21:56+01:00</updated>
<id>http://events.mike/activity/ID</id>
<summary>当有人追你,你不喜欢对方时,会怎样?</summary>
</entry>
<entry>
<title>请用四个字来形容你的初恋!</title>
<link rel="alternate" type="text/html" href="http://events.mike/activity/ID"/>
<published>2011-05-12T08:21:56+01:00</published>
<updated>2011-05-12T08:21:56+01:00</updated>
<id>http://events.mike/activity/ID</id>
<summary>请用四个字来形容你的初恋!</summary>
</entry>
<entry>
<title>下面哪一首歌曲能让你流泪?</title>
<link rel="alternate" type="text/html" href="http://events.mike/activity/ID"/>
<published>2011-05-12T08:21:56+01:00</published>
<updated>2011-05-12T08:21:56+01:00</updated>
<id>http://events.mike/activity/ID</id>
<author>
<name>admin</name>
</author>
<summary>下面哪一首歌曲能让你流泪?</summary>
</entry>
<entry>
<title>qqwerew</title>
<link rel="alternate" type="text/html" href="http://events.mike/activity/ID"/>
<published>2011-05-12T08:21:56+01:00</published>
<updated>2011-05-12T08:21:56+01:00</updated>
<id>http://events.mike/activity/ID</id>
<author>
<name>admin</name>
</author>
<summary>qqwerew</summary>
</entry>
<entry>
<title>iphone</title>
<link rel="alternate" type="text/html" href="http://events.mike/activity/ID"/>
<published>2011-05-12T08:21:56+01:00</published>
<updated>2011-05-12T08:21:56+01:00</updated>
<id>http://events.mike/activity/ID</id>
<summary>iphone</summary>
</entry>
</feed>
有涉及到html的问题吗 回复 jeongee 的帖子
哦。。我知道了。。。在结果显示的代码那边根本就没有写显示邮箱等信息的代码。。。没注意。。呵呵 回复 jeongee 的帖子
feedcreator.class.php(一部分):
function createFeed() {
$feed = "<?xml version=\"1.0\" encoding=\"".$this->encoding."\"?>\n";
$feed.= $this->_createGeneratorComment();
$feed.= $this->_createStylesheetReferences();
$feed.= "<feed xmlns=\"http://www.w3.org/2005/Atom\"";
if ($this->language!="") {
$feed.= " xml:lang=\"".$this->language."\"";
}
$feed.= ">\n";
$feed.= " <title>".htmlspecialchars($this->title)."</title>\n";
$feed.= " <subtitle>".htmlspecialchars($this->description)."</subtitle>\n";
$feed.= " <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->link)."\"/>\n";
$feed.= " <id>".htmlspecialchars($this->link)."</id>\n";
$now = new FeedDate();
$feed.= " <updated>".htmlspecialchars($now->iso8601())."</updated>\n";
if ($this->editor!="") {
$feed.= " <author>\n";
$feed.= " <name>".$this->editor."</name>\n";
if ($this->editorEmail!="") {
$feed.= " <email>".$this->editorEmail."</email>\n";
}
$feed.= " </author>\n";
}
$feed.= " <generator>".FEEDCREATOR_VERSION."</generator>\n";
$feed.= "<link rel=\"self\" type=\"application/atom+xml\" href=\"". $this->syndicationURL . "\" />\n";
$feed.= $this->_createAdditionalElements($this->additionalElements, " ");
for ($i=0;$i<count($this->items);$i++) {
$feed.= " <entry>\n";
$feed.= " <title>".htmlspecialchars(strip_tags($this->items[$i]->title))."</title>\n";
$feed.= " <link rel=\"alternate\" type=\"text/html\" href=\"".htmlspecialchars($this->items[$i]->link)."\"/>\n";
if ($this->items[$i]->date=="") {
$this->items[$i]->date = time();
}
$itemDate = new FeedDate($this->items[$i]->date);
$feed.= " <published>".htmlspecialchars($itemDate->iso8601())."</published>\n";
$feed.= " <updated>".htmlspecialchars($itemDate->iso8601())."</updated>\n";
$feed.= " <id>".htmlspecialchars($this->items[$i]->link)."</id>\n";
$feed.= $this->_createAdditionalElements($this->items[$i]->additionalElements, " ");
if ($this->items[$i]->author!="") {
$feed.= " <author>\n";
$feed.= " <name>".htmlspecialchars($this->items[$i]->author)."</name>\n";
$feed.= " </author>\n";
}
if ($this->items[$i]->description!="") {
$feed.= " <summary>".htmlspecialchars($this->items[$i]->description)."</summary>\n";
}
if ($this->items[$i]->enclosure != NULL) {
$feed.=" <link rel=\"enclosure\" href=\"". $this->items[$i]->enclosure->url ."\" type=\"". $this->items[$i]->enclosure->type."\"length=\"". $this->items[$i]->enclosure->length . "\" />\n";
}
$feed.= " </entry>\n";
}
$feed.= "</feed>\n";
return $feed;
}
页面的显示应该就是按照这个来的吧。。但是这里面没有authorEmail的相关信息。但是好像又不能自己加进去。所以导致邮箱不能显示出来,author也不能。这个文件里面的东西只要修改一下,即使是改回原样,还是会出错。不懂怎么回事。 回复 patosky 的帖子
用标准的rss的xml格式就好了 回复 jeongee 的帖子
我不大懂您的意思。。刚接触,头大 回复 jeongee 的帖子
可以说的具体一点吗。。还有,feedcreator.class.php文件里面的内容是不是不能改?一改就出错 回复 patosky 的帖子
http://baike.baidu.com/view/1644.htm
页:
[1]
2