2011-10-20 9 views
0

こんにちは、最近の活動フィードを作成しようとしています。これはmysqlデータベースのレコードを表示し、自動的に別のレコードを循環します。php/mysqlを使って最近のフィードを作成

私は次のコードを持っている:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<script type="text/javascript" src="jquery-1.2.6.js"></script> 
<style type="text/css"> 
<!-- 
#datas { 
    overflow: hidden; 
} 
.data { 
    display: none; 
} 

--> 
</style> 
<script type="text/javascript" src="jquery-1.2.6.js"></script> 
<script type="text/javascript" > 
$(function() { 
    get_data(); 
setInterval('get_data()', 5000); 
}); 

function get_data() { 
    $.post('data2.php', function(response) { 
     $el = $('<div></div>').attr('class', 'data').html(response); 
     $('#datas').prepend($el); 
     count = $('#datas .data').length; 
     if(count > 5) { 
      $('#datas .data').last().remove(); 
     } 
     height = $el.height()+'px'; 
     $el.css({'opacity': 0, 'display': 'block', 'height':  '0px'}).animate({height: height }, 500, function() { 
       $(this).animate({opacity: 1}, 500); 
     }) 
    }); 
} 
</script> 
</head> 
<body> 
<h2>test page</h2> 

<div id="datas"> 
</div> 

</body> 
</html> 

すべてのボディは、私は私を導くために一度に好ましい例やチュートリアルを一組のデータを表示するdata2.phpのために必要となるPHPに私を直接助けることができるの私はより良いコーディングを学び、向上させることができます。

おかげ

K

+0

私たちはあなたのデータベース構造が何であり、何のデータを出力すべきかを魔法のように知っています。 –

+0

申し訳ありませんが私の間違いmysqlデータベースと名前、詳細、日付などのようなものを出力するために探しています。私はちょうどそこにそれを取ることができるように開始するために基本的な情報が必要です – Kyle

答えて

0

はたぶん、あなたはw3schools.comでチュートリアルを見てみることができます。 PHPには基本から高度に加えて、MySQL、XML、AJAXと組み合わせてPHPを扱うチュートリアルがいくつかあります。

jQueryの.post()関数を使用してdata2.phpファイルからデータを取得するため、PHPサンプルコード用のPHP-AJAXおよびMySQL http://www.w3schools.com/php/php_ajax_database.aspチュートリアルが必要になることがあります。

1

最新のレコードのIDを保持するjavascriptの変数 'mostRecentID'を維持するのが1つの方法です。次に、data2.phpに投稿するときにmostRecentIDも投稿します。 data2.phpで

$.post('data2.php', {mostRecentID: mostRecentID}, function(response) ... 

あなたは、データベースへのクエリで$ _POST [「mostRecentID」]変数を使用する必要があります。その時点でmostRecentID以降のレコードだけを選択できるはずです。次のようなものがあります。

<?php 
// cast our id as integer 
$mostRecentID = (int) $_POST['mostRecentID']; 

// connect to your database here 
//.... 

// prep the query 
$sql = sprintf("SELECT id, title, content FROM yourTable 
       WHERE id > '%c'", 
       mysql_real_escape_string($mostRecentID)); 

// run the query and handle your results 
//.... 
?> 
+0

あなたはこれを少し拡大することができます...私はまだこの事のほとんどを学んでいるnoobのために申し訳ありません – Kyle

+0

@Kyleそれに少し拡張。うまくいけば、これはあなたにそこに着く方法のアイデアを与える。 – jsleuth

+0

喝采大きな助け – Kyle

0

私は、PHP And Jquery(Ajax)を使用してログシステムを作成しました。違いは、データベースを読んでいるのではなく、file.logです。

は見てみましょう:

<html> 
<head> 
<title></title> 
</head> 
<body> 
<div id="log_box"> 
</div> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script type="text/javascript" src="js/script.js"></script> 
</body> 
</html> 

JS:PHPで

var lastSize = 0; 

$(function(){ 
    myInterval = setInterval(function() { 
     doSomething(); 
    }, "1000"); 

});  

    function doSomething(){ 
      request = $.ajax({ 
       type: "HEAD", 
       url: 'log.txt?NC='+(new Date()).getTime(), 
       success: function() { 
        actualSize = request.getResponseHeader("Content-Length"); 

        if(actualSize>lastSize){ 
         $.getJSON('script.php',{},function(data){ 
          var line = "<p>"+data+"</p>"; 
          $(line).appendTo('#log_box'); 
          console.log(line); 
         });  
         lastSize = actualSize; 
        } else { 
         console.log('espera'); 
        } 
       } 
      }); 
    } 

がバックエンド:

<?php 
function tail($filePath){ 
    $line = ''; 

    $file = fopen($filePath, 'r'); 
    $cursor = -1; 

    fseek($file, $cursor, SEEK_END); 
    $char = fgetc($file); 

    while ($char === "\n" || $char === "\r") { 
     fseek($file, $cursor--, SEEK_END); 
     $char = fgetc($file); 
    } 

    while ($char !== false && $char !== "\n" && $char !== "\r") { 
     $line = $char . $line; 
     fseek($file, $cursor--, SEEK_END); 
     $char = fgetc($file); 
    } 
    return $line; 
} 

//$data = tail('../sistemapac/data/logs/2011-09-30.log'); 
$data = tail('log.txt'); 
echo json_encode($data); 
?> 

結果がログにリアルタイムでリロードHTMLページです。

C ya!

関連する問題