PHP silme işleminden önce tabloyu aktarma
Merhaba arkadaşlar, siparis tablosuna ekleme yapıyorum ve ekleme başarılıysa sepet tablosundan silme işlemi yapıyorum. Silme işlemini yapmadan önce sepette silinen verileri başka bir tabloya aktarmak istiyorum. Nasıl bir yol izlemeliyim.
$query = $db->prepare('insert into siparis (siparisNo, siparisFirma, siparisUser, siparisDurum, siparisTarih, siparisNot)
values (:siparisNo, :siparisFirma, :siparisUser, :siparisDurum, :siparisTarih, :siparisNot)');
$query->execute(array(
'siparisNo' => $_SESSION['siparisNo'],
'siparisFirma' => $_POST['siparisFirma'],
'siparisUser' => $_POST['siparisUser'],
'siparisDurum' => $_POST['siparisDurum'],
'siparisTarih' => $_POST['siparisTarih'],
'siparisNot' => $_POST['siparisNot']
));
if($query->rowCount()){
$sil=$db->prepare("DELETE from sepet where kullaniciId=:kullaniciId");
$kontrol=$sil->execute(array('kullaniciId' => $user));
$return['siparismesaj'] = 'Sepete Eklendi';
}else{
$return['siparismesaj'] = 'işlem Başarısız Oldu';
}
echo json_encode($return);
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
veritabanınızda bir tablonun verilerini başka bir tablo'ya taşımak istiyorsanız,
aşağıdaki SQL sorgusunu kullanabilirsin
INSERT INTO yeni_tablo (kolon1, kolon2, ...)
SELECT kolon1, kolon2, ...
FROM eski_tablo
WHERE koşul;
Bu sorgu ile, eski_tablo adlı tablonun belirtilen koşulu sağlayan
tüm satırlarını yeni_tablo adlı tablo'ya kopyalayabilirsiniz.
Örneğin, aşağıdaki sorgu ile eski_tablo tablosundaki tüm satırları yeni_tablo tablosuna kopyalayabilirsin
INSERT INTO yeni_tablo (kolon1, kolon2, ...)
SELECT kolon1, kolon2, ...
FROM eski_tablo;
Eğer sadece belirli bir koşul sağlanan satırları taşımak istiyorsanız, WHERE koşulu kullanabilirsiniz.
Örneğin, aşağıdaki sorgu ile eski_tablo tablosundaki id değeri 1 olan satırı
yeni_tablo tablosuna kopyalayabilirsin
INSERT INTO yeni_tablo (kolon1, kolon2, ...)
SELECT kolon1, kolon2, ...
FROM eski_tablo
WHERE id = 1;
Bu sorguyu kullanarak gerçekleştirebilirsin.
Örnek bir kod
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "INSERT INTO yeni_tablo (kolon1, kolon2, ...) SELECT kolon1, kolon2, ... FROM eski_tablo WHERE id = 1";
$stmt = $db->prepare($query);
$stmt->execute();
Bu kod parçacığında,
veritabanına bağlantı kurulur ve
INSERT INTO ... SELECT sorgusu ile eski_tablo tablosundan yeni_tablo tablosuna veri taşınır