更新数据库从foreach循环PHP无法正常工作

时间:2012-07-29 14:49:37

标签: php mysql arrays

您好我正在尝试使用来自foreach循环的值更新我的sql数据库中的列但是正在获取..为foreach()提供的无效参数

        foreach($ids as $id){
    $ch = curl_init();

    // set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, "http://api.twitter.com/1/
    users/lookup.json?user_id=".$id."");
    curl_setopt($ch, CURLOPT_HEADER, 0);

    // grab URL and pass it to the browser
    $contents = curl_exec ($ch);
    $ok=array();
    $ok=json_decode($contents,true);
    foreach($ok['results'] as $p){
        $location=$p['location'];
        $query=mysql_query("UPDATE tweets SET location=".$location."
         WHERE from_user_id=".$id."");
        if($query){
            print'ok';
        }else{print'sds';}
    }
    // close cURL resource, and free up system resources
    curl_close($ch);
    }

我做错了什么?

欢呼人!!!!

2 个答案:

答案 0 :(得分:1)

这就是你所需要的。它只会拉最后一条推文,但这是一个好的开始。您对twitter api的调用不再有效,将其放在浏览器窗口中,您会发现它出错。

$contents = file_get_contents("http://api.twitter.com/users/".$id.".json");
$ok=json_decode($contents,true);

# For Testing Purposes
#echo '<pre>';
#var_dump($ok);
#echo '</pre>';

echo $ok['location'];

答案 1 :(得分:0)

PHP数组,无论是否是关联的,都有每个对的键和值。

因此,我猜测它应该是foreach($ids as $id_number => $id) {,因为您没有提供有关$ids数组的更多信息。