Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php和sql进行Twitter标签搜索_Php_Twitter_Mysqli_Twitter Oauth - Fatal编程技术网

使用php和sql进行Twitter标签搜索

使用php和sql进行Twitter标签搜索,php,twitter,mysqli,twitter-oauth,Php,Twitter,Mysqli,Twitter Oauth,我正在使用Abraham Williams的TwitterOAuth进行twitter标签搜索API项目 我得到了标签推特,但我有一个问题 比如说,, 只有2条tweet被输入到标签中, 但是我的函数会收到最新的100条推文,并不断更新我管理的重复项目的数据库 如何使用since_id和max_id来消除获取剩余tweet的方法。 我的代码 //Hashtag Specification $search = "#KejriwalFirSe"; $notweets = 100; //Hasta

我正在使用Abraham Williams的TwitterOAuth进行twitter标签搜索API项目

我得到了标签推特,但我有一个问题

比如说,, 只有2条tweet被输入到标签中, 但是我的函数会收到最新的100条推文,并不断更新我管理的重复项目的数据库

如何使用since_id和max_id来消除获取剩余tweet的方法。 我的代码

//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'");
}   

}经过多次尝试,我解决了这个错误

我传递了一个数组,该数组遍历tweets并将最后一条tweet的状态id存储在要存储的最后一个变量中

我将最后一个_id存储在会话变量中,以便在刷新后传递该变量值,并将该值传递给自_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);
}