Как записать ответ API в поле ?

Все вопросы/проблемы по установке и использовании.
SergeyShepelev
Инвестор
Инвестор
Сообщения: 103
Зарегистрирован: 22 янв 2020, 15:01
Имя: Шепелев Сергей Сергеевич
Откуда: Российская Федерация Москва

Re: Как записать ответ API в поле ?

Сообщение SergeyShepelev »

В данном варианте проходиться циклом по json или если Вам нужны только 2 этих параметра добавить еще 1 переменную
Аватара пользователя
SalahievFR
Сообщения: 297
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Как записать ответ API в поле ?

Сообщение SalahievFR »

SergeyShepelev писал(а): 27 мар 2023, 16:31 В данном варианте проходиться циклом по json или если Вам нужны только 2 этих параметра добавить еще 1 переменную
нам нужно больше параметров, тут просто про два спросил. Подскажите как пройтись циклом?
SergeyShepelev
Инвестор
Инвестор
Сообщения: 103
Зарегистрирован: 22 янв 2020, 15:01
Имя: Шепелев Сергей Сергеевич
Откуда: Российская Федерация Москва

Re: Как записать ответ API в поле ?

Сообщение SergeyShepelev »

Аватара пользователя
SalahievFR
Сообщения: 297
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Как записать ответ API в поле ?

Сообщение SalahievFR »

В общем я смог весь ответ записать в поле, а отдельно нужные параметры брать с ответа и назначать в переменные не смог понять как ) Подскажите, пожалуйста, конкретным кодом. Буду благодарён.

Сейчас мой код так выглядит:

Код: Выделить всё

// Инициализация сеанса cURL
$ch = curl_init();
// Установка URL
curl_setopt($ch, CURLOPT_URL, "https://data.av100.ru/api.ashx?key=b0abcafe-dafa-4a4a-8ce0-f327aceab962&vin=".[262]);
// Установка CURLOPT_RETURNTRANSFER (вернуть ответ в виде строки)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Выполнение запроса cURL
//$output содержит полученную строку
$output = curl_exec($ch);
// закрытие сеанса curl для освобождения системных ресурсов
curl_close($ch);
// Запись данных вполя
db_query("update app_entity_25 set field_266='{$output}' where id={$item_id}");
SergeyShepelev
Инвестор
Инвестор
Сообщения: 103
Зарегистрирован: 22 янв 2020, 15:01
Имя: Шепелев Сергей Сергеевич
Откуда: Российская Федерация Москва

Re: Как записать ответ API в поле ?

Сообщение SergeyShepelev »

Ну здесь Вы берете полностью весь ответ не преобразовывая я его в json.
Попробуйте его после получения преобразовать
$result = json_decode($output,true);
$marka = $result['marka'];
$model = $result['model'];
и. тд
потом добавляете в базу:
db_query("update app_entity_26 set field_246='{$marka}', field_n = '{$model}' where id={$item_id}");
Включите отладку и посмотрите что прилетает в переменные
Аватара пользователя
SalahievFR
Сообщения: 297
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Как записать ответ API в поле ?

Сообщение SalahievFR »

При включении отладки система показывает мой код, не выполняет его.
SergeyShepelev
Инвестор
Инвестор
Сообщения: 103
Зарегистрирован: 22 янв 2020, 15:01
Имя: Шепелев Сергей Сергеевич
Откуда: Российская Федерация Москва

Re: Как записать ответ API в поле ?

Сообщение SergeyShepelev »

SalahievFR писал(а): 04 апр 2023, 14:51 При включении отладки система показывает мой код, не выполняет его.
Пришлите скрин части кода что отображается в переменных
SergeyShepelev
Инвестор
Инвестор
Сообщения: 103
Зарегистрирован: 22 янв 2020, 15:01
Имя: Шепелев Сергей Сергеевич
Откуда: Российская Федерация Москва

Re: Как записать ответ API в поле ?

Сообщение SergeyShepelev »

Можете в личку
remchik
Сообщения: 266
Зарегистрирован: 19 сен 2019, 11:32
Имя: Remchik
Откуда: Москва

Re: Как записать ответ API в поле ?

Сообщение remchik »

// получение JSON-строки из API
$json = file_get_contents("http://api.example.com/vin/XUUCD26UJC0001601");

// преобразование JSON-строки в ассоциативный массив
$data = json_decode($json, true);
$vin = $response['result']['vininfo']['reghistory']['ownerShipPeriod'][0]['vin'];
$marka = $response['result']['vininfo']['reghistory']['marka'];
$markaModel = $response['result']['vininfo']['reghistory']['markaModel'];
$year = $response['result']['vininfo']['reghistory']['year'];
$bodyNumber = $response['result']['vininfo']['reghistory']['bodyNumber'];
$color = $response['result']['vininfo']['reghistory']['color'];
$engineVolume = $response['result']['vininfo']['reghistory']['engineVolume'];
$enginePower = $response['result']['vininfo']['reghistory']['enginePower'];
$engineNumber = $response['result']['vininfo']['reghistory']['engineNumber'];
$type = $response['result']['vininfo']['reghistory']['type'];
$pts = $response['result']['vininfo']['reghistory']['pts'];
$vininfo = $data["result"]["vininfo"];
$eaisto = $data["result"]["eaisto"];

foreach ($eaisto as $item) {
$sql = "INSERT INTO eaisto (vin, num, gosnumber, rama, date, dateexpire, kuzov, docname, markamodel, marka) VALUES ('" . $item["vin"] . "', '" . $item["num"] . "', '" . $item["gosnumber"] . "', '" . $item["rama"] . "', '" . $item["date"] . "', '" . $item["dateexpire"] . "', '" . $item["kuzov"] . "', '" . $item["docname"] . "', '" . $item["markamodel"] . "', '" . $
}

Как пример:
Я думаю тут понятно как разобрать JSON, Как вложенные данные, так и нет. И АЛАРМА - Ключики надо стирать :))
***
Тружусь как пчелка
***
SQL,BpmOnline,Creatio,BpmSoft,.NET,SAP WMS,MS SQL Server,Windows Server,IIS
Аватара пользователя
SalahievFR
Сообщения: 297
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Как записать ответ API в поле ?

Сообщение SalahievFR »

Да ключи пробные, оставил, чтобы точно по ответу апи дали пример кода)
Ответить