2016-07-09 2 views
-3

я с помощью API 'RequestID', и вернуть мне некоторые данные в моих URL в формате JSON:Я получаю ошибку Illegal строки смещения

это фактический URL данные:

data={%22requestId%22%3A%22546b384ce51f469a2e8b4567%22%2C%22numbers%22%3A{%22917566559950%22%3A{%22date%22%3A%222014-11-18+17%3A45%3A59%22%2C%22status%22%3A1%2C%22desc%22%3A%22DELIVERED%22}}} 

мой PHP код для вставки данных в базу данных, но чтобы получать ошибки:

$request = $_REQUEST["data"]; 
$jsonData = json_decode($request,true); 
$link = mysqli_connect("127.0.0.1", "root", "", "table"); 
foreach($jsonData as $key => $value) 
{ 
    $requestID = $value['requestId'] ; 
    $userId = $value['userId']; 
    $senderId = $value['senderId']; 
    foreach($value['report'] as $key1 => $value1) 
     { 
    //detail description of report 
    $desc = $value1['desc']; 
    // status of each number 
    $status = $value1['status']; 
    // destination number 
    $receiver = $value1['number']; 
    //delivery report time 
    $date = $value1['date']; 
    $query = "INSERT Query for store record "; 
    mysqli_query($link, $query); 
} 
} 

что проблема здесь ошибка Warning: Illegal строка выкл установить 'RequestID' в строке 11 Warning: Illegal строка смещения 'USERID' ..... пожалуйста решить ....

ответ

1

TLDR;

You should remove the foreach($jsonData as ...) around your code. 

Вы foreaching на этом ассоциативный массив с его ключами:

{ 
"requestId":"546b384ce51f469a2e8b4567", 
"numbers":{ 
    "917566559950":{ 
    "date":"2014-11-18 17:45:59", 
    "status":1, 
    "desc":"DELIVERED" 
    } 
} 
} 

Первая итерация ключ будет «RequestID» и значение поля будет «546b384ce51f469a2e8b4567». Во втором раунде вы получили «числа» и массив выше.

$requestID = $jsonData['requestId']; 
var_dump($requestID); // the requestID 


// foreaching in the assoc array inside the 'numbers' 
foreach ($jsonData["numbers"] as $key => $value) { 
    // description 
    $desc = $value['desc']; 
    // status of each number 
    $status = $value['status']; 
    // date 
    $date = $value['date'];  

    var_dump($key); // the key with 917... 
} 
+0

Позвольте мне добавить: 1) Было бы полезно для вас, и для потенциальных респондентов на ваш вопрос, если вы декодируется ваш URL в кодировке JSON. 2) Сообщение об ошибке, которое вы получаете, сообщает вам, что вы пытаетесь использовать «requestID» в качестве индекса в строке. Следовательно, значение $ должно быть строкой. Это будет вашей подсказкой, чтобы проверить, какое значение имеет значение $ и почему. –

Смежные вопросы