Veritabanından PDO ile veri güncelleme hatası
Veritabanından PDO ile veri güncelleme
- Merhabalar bu hatayı alıyorum. Değişken tanımlı değil diyor sanırım ama sorunu çözemedim.
- Kodlarım bu şekilde;
<?php include 'header.php'; ?>
<?php require_once ("baglan.php"); ?>
<?php
$id = $_GET["id"];
$sorgu = $db -> prepare("SELECT * FROM kamerastok WHERE id =:id");
$sorgu -> execute(array(":id" => $id));
$row = $sorgu -> fetch(PDO::FETCH_ASSOC);
?>
<div class="container">
<form action="" method="POST">
<label>Stok Durumu</label>
<p><input type="number" name="urunstok" class="form-control" value="<?php echo $row["urunstok"]; ?>"></p>
<p><button type="submit" class="btn btn-primary">Güncelle</button></p>
</form>
</div>
<?php
if ($_POST) {
$urunstok = $_POST["urunstok"];
}
$guncelle = $db -> prepare("UPDATE kamerastok SET urunstok =:urunstok WHERE id =:id");
$guncelle -> execute(array(":urunstok" => $urunstok, ":id" => $id));
if ($guncelle) {
echo "İşleminiz Başarılı";
} else {
"Hata Oluştu";
}
?>
<br>
<?php include 'footer.php'; ?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (11)
Merhabalar
Normalde sizin problemin asıl cevabı bu idi ancak neden sizde çalışmıyor anlamadım
header.php de kodlarin en ustune bunuda yazin.
ob_start();
<?php
header("Location:".$_SERVER['HTTP_HOST'].'/sappguvenlik/guncelle.php');
exit;
?>
O zaman en basit yontem olarak javascript ti kullanacaz :)
<?php
if (isset($_POST['guncelle'])) {
$urunstok = $_POST["urunstok"];
$id = $_POST["urun_id"];
$guncelle = $db -> prepare("UPDATE kamerastok SET
urunstok =:urunstok
WHERE id =:id");
$result=$guncelle -> execute(array("urunstok" => $urunstok, "id" => $id));
if ($result) { ?>
<script>
location.reload();
</script>
<?php } else {
"Hata Oluştu";
}
} ?>
Bunu deneyin
guncelle.php yi yenileyin sadece
if (isset($_POST['guncelle'])) {
$urunstok = $_POST["urunstok"];
$id = $_POST["urun_id"];
$guncelle = $db -> prepare("UPDATE kamerastok SET
urunstok =:urunstok
WHERE id =:id");
$result=$guncelle -> execute(array("urunstok" => $urunstok, "id" => $id));
if ($result) {
header("Location:".$_SERVER['HTTP_HOST'].'/sappguvenlik/guncelle.php');
exit;
} else {
"Hata Oluştu";
}
}
?>
O zaman bu kodu bu sekilde degistirin :)
if (isset($_POST['guncelle'])) {
$urunstok = $_POST["urunstok"];
$id = $_POST["urun_id"];
$guncelle = $db -> prepare("UPDATE kamerastok SET
urunstok =:urunstok
WHERE id =:id");
$result=$guncelle -> execute(array("urunstok" => $urunstok, "id" => $id));
if ($result) {
header("Location:".$_SERVER['HTTP_REFERER']);
exit;
} else {
"Hata Oluştu";
}
}
?>
Merhabalar bu sekilde yaparsaniz sorun buyuk ihtimal bitmis olacak,
Guncelleme de bazi eksikleriniz olmus.
<?php include 'header.php'; ?>
<?php require_once ("baglan.php"); ?>
<?php
$id = $_GET["id"];
$sorgu = $db -> prepare("SELECT * FROM kamerastok WHERE id =:id");
$sorgu -> execute(array("id" => $id));
$row = $sorgu -> fetch(PDO::FETCH_ASSOC);
if (isset($_POST['guncelle'])) {
$urunstok = $_POST["urunstok"];
$id = $_POST["urun_id"];
$guncelle = $db -> prepare("UPDATE kamerastok SET
urunstok =:urunstok
WHERE id =:id");
$result=$guncelle -> execute(array("urunstok" => $urunstok, "id" => $id));
if ($result) {
echo "İşleminiz Başarılı";
} else {
"Hata Oluştu";
}
}
?>
<div class="container">
<form action="" method="POST">
<label>Stok Durumu</label>
<p><input type="number" name="urunstok" class="form-control" value="<?php echo $row["urunstok"]; ?>"></p>
<input type="hidden" name="urun_id" class="form-control" value="<?php echo $row["id"]; ?>">
<p><button type="submit" name="guncelle" value="1" class="btn btn-primary">Güncelle</button></p>
</form>
</div>
<br>
<?php include 'footer.php'; ?>