2011-09-12 13 views
2

私はこれについて少し切望しています。私は約183000件のコメントをコメントボックスに入れてバックアップしたいサイトがあります。しかし、私がfql.queryを実行するたびに、私は100項目しか取得しません。私はこのコードでPHPのページを作った。..fbからコメントを書く:コメント

最後の「時間」を使用して、

SELECT xid, object_id, post_id, time, text, id FROM comment WHERE xid='bdatapoyo' ORDER BY time DESC 

その後

SELECT xid, object_id, post_id, time, text, id FROM comment WHERE xid='bdatapoyo' AND time >= xxxxxxx ORDER BY time DESC 

を後者は私だけ1件のコメントを与える:私がしようとしました私はLIMITとOFFSETでこれを引き出すことができた、

<?php   
    require 'php-sdk/src/facebook.php'; 

    $facebook = new Facebook(array(
    'appId' => 'XXXXXXXXXX', 
    'secret' => 'XXXXXXXXXX', 
    'cookie' => true, 
    )); 

    $conexion = mysql_connect("localhost", "XXXX", "XXXX"); 
    mysql_select_db("TVN", $conexion); 

    $time_old = "1315070888"; 
    do { 

     $fql = "SELECT fromid,time,text FROM comment WHERE xid='bdatapoyo' AND time >= " . $time_old . " ORDER BY time"; 

     $response = $facebook->api(array(
      'method' => 'fql.query', 
      'query' =>$fql, 
     )); 

     foreach($response as $key => $value) { 
      $sql = "INSERT INTO comment (text, uuid, time) VALUES ('" . $value["text"] . "', '" . $value["fromid"] . "', '" . $value["time"] . "')";  
      $result = mysql_query($sql); 
     } 

     $time_old = $response[count($response)-1]["time"]; 
     print_r($time_old); 
    } while (count($response) > 0); 

    ?> 

答えて

2

OK:しかし、再び、それだけで100個のアイテムをつかみます。正しいFQLは

SELECT fromid,time,text FROM comment WHERE xid='bdatapoyo' LIMIT 100 OFFSET 0 

し、サイト上のすべてのユーザーからDBへのすべての単一のコメントをインポートするには、このコードの設定があるOFFSET

0

とページングのですか? xid = bdatapoyoとは何ですか?

関連する問題