Я знаю, что вы можете получить параметры URL, используя if (isset ($ _ GET ['id'])) {$ id = $ _GET ['id'];и это прекрасно работает, если я затем закрою этот оператор 'if' и создам новый для формы обновления / добавления-записи на этой же странице (это страница отображения для каждой записи базы данных инд.), я не могу получитьid, который был передан URL в следующем операторе if.
Это оператор if, который отправляет новую строку («условие») в мою дочернюю таблицу («условия») с внешним ключом, который связывает его с родительской таблицей поставщиков медицинских услуг (страница отображения).получает идентификатор провайдера из выбранной поисковой системы и отображает его информацию, а затем в нижней части находится форма «Добавить запись», если кто-то хочет добавить новое состояние здоровья, которое лечит этот врач.)
Все работает, если ядать ему правильный идентификатор прямо в моем PHP ($ id = 56), но не тогда, когда я попытаюсь извлечь его из URL-адреса ВНУТРИ этого второго оператора if ($ id = $ _GET ['id'];).
if (isset($_GET['providerid']))
{
$providerid = $_GET['providerid']; /*THIS WORKS GREAT*/
$sql = "SELECT *, GROUP_CONCAT(DISTINCT conditions.condition_name
SEPARATOR ', ') AS all_conditions FROM `providers` INNER JOIN
`conditions` ON `providers`.`id` = `conditions`.`prov_id` WHERE
`prov_id`= $providerid";
$data = mysqli_query($connection, $sql) or die('error');
if(mysqli_num_rows($data) > 0){
$numresults = mysqli_num_rows($data);
while($row = mysqli_fetch_assoc($data)){
$providerid = $row['id'];
$providerfirstname = $row['provider_first_name'];
/*etc....*/
$conditions = $row['all_conditions'];
/*table displays provider info:*/
echo "<br><h1>".$providerfirstname." ".$providerlastname."
</h1>";
echo '<TABLE id="myTable" width="350px" border="1">';
//etc....(cutting out details)
echo '<tr><td><div id="myTable"><a href="#" id="addNew">Add+ .
</a></div></td><td><b>Conditions Treated:</b></td> .
<td>'.$conditions.'</td></tr>';
/*If user wants to add a new condition treated by provider that's
not listed:*/
echo '<tr><td></td><td>Add a new condition:</td><td><form
action="profilebackup.php" method="POST"><input type="text"
size="40" name="newcond" value="" placeholder="Add a Condition" /> .
<input type="submit" name="add1" value="Add"><br></td></tr>';
}
echo '</TABLE>';
}
else {
echo "0 results";
}
}
/*sends added conditions to child table, EVERYTHING WORKS EXCEPT
GETTING ID (WHICH WORKED ABOVE):*/
if(isset($_POST['add1'])){
$providerid = $_GET['providerid'];
$condition = mysqli_real_escape_string($connection,
$_POST['condition']);
$insql = "INSERT INTO `conditions` (condition_name, prov_id) VALUES
('$condition','$providerid')";
if(mysqli_query($connection, $insql)){
echo "Thank you! Your provider has successfully been submitted
to the database!";
}
else {
echo "Sorry, there was an problem submitting your provider to
the database." . $insql . mysqli_error($connection);
}
}
Все работает, кроме функции GET во втором операторе if.Он возвращает код ошибки, что у него нет правильного ограничения внешнего ключа: «Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется», поскольку он не получает идентификатор.