2014-10-22 76 views
1

我正在使用Twitter由亞伯拉罕·威廉姆斯的Twitter Oauth在Twitter的hashtag搜索API項目。Twitter Hashtag搜索使用php和sql

我收到hashtag推文,但我有一個問題。

例如, 只有2個鳴叫已被輸入到#標籤 ,但我的功能獲得最新的100條鳴叫並不斷更新數據庫(我管理了重複項目)。

如何使用since_id和max_id來消除獲取剩餘推文的方式。 我的代碼

//Hashtag Specification 
$search = "#KejriwalFirSe"; 
$notweets = 100; 

//Hastag Connection Starts 
$search = str_replace("#", "%23", $search); 
$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json? q=".$search."&count=".$notweets.); 
//Parsing the twitter Data 
$string1 =json_encode($tweets); 

$string = json_decode($string1, true); 
echo count($tweets); 
foreach($string['statuses'] as $tweet) 
{ 
$text = trim($tweet['text']); 
$id =$tweet['id']; 
$user_name=$tweet['user']['screen_name']; 

$profile_image=$tweet['user']['profile_image_url']; 
$user_id=$tweet['user']['id']; 
     //TimeZone for india 
      $date = new DateTime($tweet['created_at']); 
      $date->setTimezone(new DateTimeZone('Asia/Kolkata')); 
      $formatted_date = $date->format('h:i, M d'); 
echo "<br>"; 
echo "<img src='".$profile_image. "'/>".' '. $id .'<br/> '.$user_name.'<br/> ' . $text.' <br/>'.$formatted_date ."</br><br/>"; 

//Conditional Statements for inserting and updating 
$select_query=$con->query("SELECT Twitter_status FROM Twitter_status WHERE Tweet_ID = '$user_id'") or die (mysqli_error()); 
$result = $select_query->num_rows; 
if(!$result){ 
//Inserting the data in to the table 
$ins_sql="INSERT INTO Twitter_status (Tweet_ID,Twitter_User,Twitter_status,Twitter_Profile,TotalTweets_User) VALUES  ('$user_id','$user_name','$text','$profile_image',1)"; 

$con->query($ins_sql); 
} 
else 
{ 
    $con->query("UPDATE Twitter_status SET Twitter_status='updated12',TotalTweets_User=TotalTweets_User+1 WHERE Tweet_ID='$user_id'"); 
} 

}

回答

0

很多的嘗試我解決了錯誤後,

i的一個last_id通過它通過鳴叫和最後鳴叫的存儲狀態ID橫穿陣列(一些變量來商店)。

我將last_id存儲在會話變量中,以便在刷新後傳遞該變量值並將該值傳遞給since_id。

當負載它爲第一次時,它存儲空值,然後將其存儲會話ID

if (!isset($_SESSION['last_id'])) { 
$_SESSION['last_id'] = NULL; 
echo "NULL"; 
} else { 
echo $_SESSION['last_id']; 
$last_id=$_SESSION['last_id']; 
$tweets = $connection->get("https://api.twitter.com/1.1/search/tweets.json?q=".$search."&count=".$notweets."&since_id=".$last_id); 

}