После json_decode () я запускаю цикл foreach () для отображения всех результатов json вместе с кнопкой отправки для каждого результата. Я написал блок mysql INSERT, чтобы опубликовать результаты json. Я пытаюсь выяснить, как назначить каждому результату json уникальный идентификатор, чтобы после нажатия кнопки «Отправить» этот объект JSON был правильно размещен в моей базе данных. То, что происходит в настоящее время с моим кодом, это только последнее значение в массиве, которое публикуется, а не значение, которое я пытаюсь передать.
Я попытался перебрать цикл foreach () и использовать итератор в качестве назначенного уникального идентификатора. Не сработало Я попытался создать флажки рядом с кнопками отправки, но это тоже не сработало. Я не уверен, что это мой код или почему я могу опубликовать только последнее значение в массиве.
<?php
$curl = curl_init();
$provider_first_name = 'Henry';
$provider_last_name = 'Lee';
$provider_state = 'CA';
$provider_postal_code = '';
curl_setopt_array($curl, array(
CURLOPT_URL => "https://npiregistry.cms.hhs.gov/api?first_name=". $provider_first_name . "&last_name=" . $provider_last_name . "&state=" . $provider_state . "&postal_code=" . $provider_postal_code . "",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
));
$response = curl_exec($curl);
$json = json_decode($response, TRUE);
/ ** 10 результатов Генри Ли будут отображаться из цикла foreach () ** /
$i = 0;
foreach($json['results'] as $doc){
/** JSON Responses Listed Below **/
$p_name = $doc['basic']['first_name'] . " " . $doc['basic']['last_name'] . ", " . $doc['basic']['credential'];
$p_npi = $doc['number'];
$p_address_one = $doc['addresses'][0]['address_1'];
$p_address_two = $doc['addresses'][0]['city'] . ", " . $doc['addresses'][0]['state'] . " " . $doc['addresses'][0]['postal_code'];
$p_skills = $doc['taxonomies'][0]['desc'];
$p_phone = $doc['addresses'][1]['telephone_number'];
if(empty($doc['addresses'][1]['telephone_number'])){
$p_phone = 'Not Available';
}
//** Echo Each Array Value In Bordered Card **/
echo "
<div class='col-md-4 col-sm-12 wow fadeIn' style='padding-top: 9px;'>
<div class='card border border-secondary mb-3' style='max-width: 18rem;'>
<div class='card-header text-center'>
<i class='fa fa-user-md' aria-hidden='true'></i> $p_name
</div>
<div class='card-body text-primary text-center'>
<p class='card-text text-center'>
NPI Number: $p_npi
</p>
<p class='card-text text-center'>
$i
</p>
<p class='card-text text-center'>
<i class='fa fa-map-marker' aria-hidden='true'></i> $p_address_one
</p>
<p class='card-text text-center'>
$p_address_two
</p>
<p class='card-text text-center'>
<i class='fa fa-phone cyan-text' aria-hidden='true'></i> $p_phone
</p>
<p class='card-text text-center'>
<i class='fa fa-user-md cyan-text' aria-hidden='true'></i> $p_skills
</p>
</div>
<div class='card-footer' style='height: 73px;''>
<form action='' method='post' id='".$json['results'][$i]."'>
<div class='form-group'>
<div class='flex-center'>
<div class='form-row align-items-center'>
<button class='btn btn-pink btn-sm' name='add_doc' type='submit'><i class='fa fa-trash px-1' aria-hidden='true'></i> Add Provider</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
";
$i++;
}
?>
<?php
if(isset($_POST['add_doc'])){
$add_doc = "INSERT INTO user_posted_providers (user_id, provider_name, provider_npi, provider_address_one, provider_address_two, provider_phone, provider_skills, created_at) VALUES ('$user_id', '$p_name', '$p_npi', '$p_address_one', '$p_address_two', '$p_phone', '$p_skills', NOW())";
$run_doc = mysqli_query($connection, $add_doc);
if($run_doc){
echo "<script>alert('Provider Added')</script>";
echo "<script>window.open('user_provider_search-r.php','_self')</script>";
}
}
?>
Я пытаюсь вставить правильные значения массива с помощью кнопки «add_doc» в цикле foreach (), но я могу вставить только последнее значение в массиве.