-1

Twitter API を使用して Twitter の投稿を保存するデータベースがあります - 見出し ID (tag:search.twitter.com,2005:195795633834176512 として保存されます)、作成者、時間、テキストの下に - 最後の 7 件を出力するページがあります。そのデータベースからの 1 日分の投稿。過去 7 日間で 10 ~ 20 件の投稿になる日もあれば、100 ~ 200 件になる日もあります。ニュース ティッカーをページに統合しようとしてきたので、各投稿がボックスに表示され、フェードアウトして別の投稿に置き換えられます。つまり、200 行ではなく、反復する行があることを意味します。

  <div id="news1">
            <h3>Stackoverflow</h3>
            <!-- Displaying News Module --> 

            <div class="news-container" style="overflow-x: hidden; overflow-y: hidden; position: relative; height: 1207px; ">
<!-- ul id="news-scroller" -->
<ul style="left: 207px; position: absolute; margin-top: 0px; margin-right: 0px; margin-       bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; top: 0px; ">

<li style="display: list-item; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; height: 69px; ">
<div style="padding-bottom: 5px;">


<!-- Displaying News Module -->

<?php
require_once 'db-functions.inc.php' ; //custom database functions

echo "<ul class=\"twitter_feed\">\n" ;
$result = dbQuery("SELECT * FROM `HASH` WHERE text LIKE '%stackoverflow%' AND `hidden` != 'y' AND from_unixtime(time) > date_sub(curdate(), interval 7 day) ORDER BY `time` DESC LIMIT 10");
while ($row = dbGetRow($result)) {
$text = stripslashes($row['text']);
$time = $row['time'];
$author = stripslashes($row['author']); 
echo "  <li><span class=\"twitter_time\">".date('M j, Y, g:i a',$time)."</span> &middot; $author: $text</li>\n" ;
}
echo "</ul>\n" ;

?>

ただし、これは過去 7 日間を一度に 1 つずつではなく、1 つの塊として出力するだけです: http://sanctuary-westminster.org/server/scroll.php

問題は、最後のエントリ (タイムスタンプが最も大きいもの) を「ニュース項目」として個別に出力する方法です。そのため、最後の投稿、最後から 2 番目の投稿などです。一定のエントリ数ではなく、1 つの 7 日間が可能です。 10、さらに 200 であるため、エコーと反復を記述するのは難しいと思います。

前もって感謝します

4

1 に答える 1

0

コメントに記載されているように AJAX を使用するのが最善の方法だと思いますが、既に記述したコードを使用する最も簡単な方法は、投稿の配列をデータベースから JavaScript 配列にダンプし、ループすることです。ニュース ティッカーを含む JavaScript 配列。これは次のように行うことができます。

echo '<script type="text/javascript"> var tweets = [""]; 
                                      var author = [""]; 
                                      var times = [""]; ';

while ($row = dbGetRow($result))
{
    echo "tweets.push('$row[text]'); 
          author.push('$row[author]'); 
          times.push('$row[times];"; 
}

echo '</script>';

次に、javascript を使用して配列をループして、ニュース ティッカーに情報を 1 つずつ表示できます。

編集:以下のコメントで提案されているように、最初の変数の割り当てを修正しました。

于 2012-05-03T08:05:57.663 に答える