将查询结果应用于PHP / jQuery Newsfeed

时间:2011-12-10 14:12:30

标签: php jquery

我有一个用于票务信息系统的新闻Feed。新闻源的效果与Facebook的新闻源相同,只有在有新内容被提取时才会获取数据。

我在理解将SQL查询结果应用到多维数组的位置时遇到问题,该多维数组将在JSON函数中用于返回要添加到新闻源的其他内容。以下是代码:

feed.php

<? php
    $array_with_news = array(
        'news1' => array('pk' => 'pk1', 'title' => 'title1', 'content' => 'title2'), 
        'news2' => array('pk' => 'pk2', 'title' => 'title2', 'content' => 'content2')
    );
    echo json_encode($array_with_news);
?> 

main.php

<html>
    <head>
        <script type="text\javascript">
            window.setInterval(function() {
                updateNews();
            }, 5000);


            function updateNews() {
                var scope = this;
                $.getJSON('newsFeed.php*', function(data) {
                    //data will contain the news information
                    $.each(data, function(index, value) {
                        this.addNewsRow(value);
                    });
                });
            }

            function addNewsRow(newsData) { 
                //this function will add html content 
                var pk = newsData.pk, title = newsData.title, content = newsData.content;
                $('#news').append(pk + ' ' + title + ' ' + content);
            }
        </script>
    </head>
    <body>
        <div id="news"></div>
    </body>
</html>

包含Feed信息的表格将如下

  

pk,标题,类别,内容

另外,我只想获取需要获取的新数据。

1 个答案:

答案 0 :(得分:0)

不确定你究竟在问什么,但听起来你想知道如何将SQL结果输入到你的JSON数组中,#2,你只想获取更新。这是我对它的看法

feed.php

// store the last updated time in the db, get it here
$last_update = $user->get_last_update();

// obviously, this probably has a lot more logic
$sql = "SELECT * FROM news WHERE post_time > $last_update";
$news = array();

while($row = query($sql))
{
    $key = 'news'.count($news);
    $news[$key] = array(
        'pk' => $row->pk, 
        'title' => $row->title, 
        'content' => $row->content
   );
}

echo json_encode($news);

query('UPDATE users SET last_update_time=now()');

将此更多地视为伪代码 - 以查看代码应该如何流动。如果我误解了这个问题,那么我会修改我的答案。