2010-12-03 4 views
0

특정 ID를 공유하는 모든 장치를 가져 오는 방법이 있습니다. 이러한 장치 UID의 Foreach는 easyAPN 클래스를 사용하여 APN (Apple Push Notification)을 보내려고합니다.정수가 아닌 ID ... EasyAPNS

문제가있는 방법은 $ apns-> newMessage ($ id)입니다.

$ id에 유효한 정수를 전달하지 않을 것으로 생각됩니다.

은 $ 이드 같은 배열 그래서 어레이 ([0] => 1)

I는 같은 어레이의 바로 값을 전달하려고 그래서 $ apns->은 newMessage ($ 자료 [0]) .

상관없이 내가 뭘 .. 나는이 오류가 계속 ...

"주의 사항 : ID가 정수가 아닌 하였다 1) Messages_model :: send_apns -> 파일 :. sendMessage.php (라인 28) 2) APNS :: queueMessage -> File : messages_model.php (line 195) 3) APNS :: _ triggerError -> 파일 : class_APNS.php (599 줄) "

여기 내 방법입니다 ... 알려주세요. 나는 $ id에 잘못 갔다.

function send_apns($data) 
{ 
    include 'apn_classes/class_DbConnect.php'; 
    include 'apn_classes/class_APNS.php'; 

    $message = new Messages_model(); 
    $db = new DbConnect(); 
    $db->show_errors(); 
    $apns = new APNS($db); 

    //get uid's for aid 
    $sql = "SELECT `devices`.`uid` FROM `devices` WHERE `devices`.`aid` = '".$data['target']."'"; 
    //echo $sql; 
    $query = mysql_query($sql); 
    if(mysql_num_rows($query)) 
    { 
    while($uid_data = mysql_fetch_array($query)) 
     $uids[] = array(
      "uid" => $uid_data['uid'] 
     ); 
    } 

    //make sure there is a uid 
    if(!empty($uids)) 
    { 
     //check the device apn pid 
     foreach($uids as $uid) 
     { 
      $sql = "SELECT `apns_devices`.`pid` FROM `apns_devices` WHERE `apns_devices`.`deviceuid` = '".$uid['uid']."'"; 
      //echo "$sql"; 
      $query = mysql_query($sql); 
      if(mysql_num_rows($query) > 0) 
      { 
       while($pid_data = mysql_fetch_array($query)) 
       { 
        $pids[] = array(
         "pid" => $pid_data['pid'], 
        ); 

        if(!empty($pids)) 
        { 
         foreach ($pids as $pid) 
         { 
          $id = array($pid['pid']); 
          print_r($id); 
          //Send APN 
          $apns->newMessage($id[0]); 
          $apns->addMessageBadge(128); 
          $apns->addMessageAlert($data['message']); 
          $apns->addMessageSound('chime'); 
          //$apns->addMessageCustom('acme2'); 
          $apns->queueMessage(); 
          $apns->processQueue(); 
         } 
        }     
       } 
      } 
     } 

    } 
    else 
    { 
     echo "Device Does not Exist"; 
    } 



} 

답변

1

봅니다 $ ID가 정수로 변환 :

... 
foreach ($pids as $pid) { 
    $id = intval($pid['pid']); 
    print_r($id); 
    //Send APN 
    $apns->newMessage($id); 
    ... 
+0

가 완벽하게 작동! 감사! – Peter

관련 문제