#php #html #mysql
Вопрос:
Я создаю систему с использованием PHP. В этой системе также существуют запросы к базе данных. Эти запросы зависят от ответа на кнопки. В то же время эти запросы зависят от данных, которые будут поступать с кнопок. Моя проблема в том, что у меня есть 2 кнопки, одна для редактирования, другая для удаления, когда я нажимаю кнопку редактирования, данные с кнопки верны. Но когда я нажимаю кнопку удалить, данные внутри пусты. Но самое интересное, что я могу видеть, нажал ли я кнопку удаления с помощью функции isset, но я не вижу данных. Я использую один и тот же материал на обоих, но я не смог решить проблему. И я использую ту же логику в других ресурсах страниц, там нет никаких проблем.
Часть отправителя =>
foreach($personellist as $person){ $xasr=$person->Animal_ID; ?>
<tr>
<tbody>
<td><?= $person->Animal_ID?> </td>
<td><?= $person->name ?></td>
<td><?= $person->age ?></td>
<td><?= $person->kind ?></td>
<td><?= $person->genus ?></td>
<td><?= $person->vaccinations_made ?></td>
<td><?= $person->CageID ?></td>
<td><button type="submit" name="giden" value="<?= htmlspecialchars($person->Animal_ID) ?>" class="btn btn-primary">Edit</button>
<button type="submit" name="stack" value="<?= htmlspecialchars($person->Animal_ID) ?>" class="btn btn-primary">Delete</button> </td>
</tbody>
</tr>
<?php }
Часть приемника = >
$gelen1=$_POST["giden"];
$gelen2=$_POST["stack"];
if(isset($_POST["giden"])){
$gelen1=$_POST["giden"];
$post=$db->prepare("SELECT * FROM animals where Animal_ID=:id");
$post->execute(array(
'id'=> $gelen1
));
$ayarcekpost=$post->fetch(PDO::FETCH_ASSOC);
}
if(isset($_POST['stack'])){
$gelen2=$_POST["stack"];
$post=$db->prepare("SELECT * FROM animals where Animal_ID=:id");
$post->execute(array(
'id'=> $gelen2
));
$ayarcekpost=$post->fetch(PDO::FETCH_ASSOC);
$sex=$_POST["delete"];
$sth4 = $db->prepare("SELECT * FROM cages where CageID='".$ayarcekpost["CageID"]."'");
$sth4->execute();
$result = $sth4->fetch(PDO::FETCH_ASSOC);
$count=$result["count_of_animals"];
$count=$count-1;
$sex=$result["count_of_animals"];
$sth2 = $db->prepare("UPDATE cages
SET count_of_animals=:coa
WHERE CageID=:cid ");
$sth2->execute(array(
'coa' => $count,
'cid' => $ayarcekpost["CageID"]
));
echo $result["count_of_animals"];
if($sth2){
header("Location:../production/hayvan-ayarlar.php?durum='".$result["count_of_animals"]."'");
}
else{
header("Location:../production/hayvan-ayarlar.php?durum=no");
}
/*$cc=$db->prepare("DELETE FROM animals
WHERE
Animal_ID = :id");
$cc->execute(array(
'id'=> $gelen
));*/
}
Комментарии:
1. Вы должны написать оба isset как if..else, если вместо 2, если оператор.
2. «Но когда я нажимаю кнопку удалить, данные внутри пусты» — какие данные? Пожалуйста, поделитесь своими точными усилиями по отладке.