从数据库中获取数据并将其分成不同的数组

时间:2016-04-18 07:35:44

标签: php mysql loops mysqli

我正在尝试将IP从数据库中取出并将它们分成不同的数组,以便我可以计算每个国家/地区的客户数量,并将它们放在欧洲地图中。

现在我被困在将国家分成不同数组的部分。

    $result_ip = $dbhandle->query("SELECT ip FROM email;");
    $row_cnt_ip = $result_ip->num_rows;

    $NL = array('');
    $AL = array('');
    $NO_EU = array('');


    $ip = $result_ip;
    $details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));

    while($r = $details->country->fetch_array(MYSQLI_ASSOC)):
       for($i = 1; $i < $row_cnt_ip; $i++) {
    switch ($details->country) {
        case "NL": //Netherlands
          array_push($NL,"$details->country");
            break;
        case "AL":  //Albania
            array_push($AL,"$details->country");
            break;
        default;
             array_push($NO_EU,"$details->country");
            break;
          }
         }
        endwhile;

我得到的错误是:

  

可捕获的致命错误:类mysqli_result的对象不可能   转换为字符串

任何人都可以帮我弄清问题是什么?

1 个答案:

答案 0 :(得分:1)

您无法直接使用mysqli_query结果。您需要从查询结果中获取数据

$result_ip = $dbhandle->query("SELECT ip FROM email");
$row_cnt_ip = $result_ip->num_rows;
$NL = array('');
$AL = array('');
$NO_EU = array('');

$row=$result_ip->fetch_assoc();// fetch data 
$ip=$row['ip'];

$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));