merhabalar formdan gelen menu tablosunda bulunan idrand sabit verilerim var güncelleme işlemi sırasında idrand aynı olanların menudil kısımlarını kontrol edecek ve menudil aynı olanları güncellerken aynı olmayanlarını yeni bir satır olarak eklemsini istiyorum aşağıda bulunan kodu çalıştırmak istiyorum ama her seferinde bütün menüyü tekrar ekliyor yardımcı olursanız sevinirim.
try {
$menuAdlari = array();
$dilsor = $db->query("SELECT * FROM dil");
$dilcek = $dilsor->fetchAll(PDO::FETCH_ASSOC);
foreach ($dilcek as $dil) {
$dilKisa = $dil['dil_kisa'];
$menuAdiDil = $_POST['menuad' . $dilKisa];
$menudil = $_POST['menudil' . $dilKisa];
$id = $_POST['id' . $dilKisa];
$menuSlug = seo($menuAdiDil);
$menuAdlari[] = array(
'menuAdiDil' => $menuAdiDil,
'menuSlug' => $menuSlug,
'menudil' => $menudil,
'id' =>$id
);
}
$menuust = isset($_POST['menuust']) ? $_POST['menuust'] : 0;
$menusabit = $_POST['menusabit'];
$menuurl = $_POST['menuurl'];
$menusira = $_POST['menusira'];
$menusite = $_POST['menusite'];
$menupanel = $_POST['menupanel'];
$menupanelmenu = $_POST['menupanelmenu'];
$idrand = $_POST['idrand'];
$mendil = $_POST['menudil'];
$id = $_POST['id'];
// Veritabanından mevcut kayıtlar
$stmt = $db->prepare("SELECT * FROM menu WHERE idrand = :idrand AND menudil=:menudil ");
$stmt->execute(array(':idrand' => $idrand, ':menudil' => $mendil));
$existing_menu = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt->bindValue(':menuust', $menuust, PDO::PARAM_STR);
$stmt->bindValue(':menusabit', $menusabit, PDO::PARAM_STR);
$stmt->bindValue(':menuurl', $menuurl, PDO::PARAM_STR);
$stmt->bindValue(':menusira', $menusira, PDO::PARAM_STR);
$stmt->bindValue(':menusite', $menusite, PDO::PARAM_STR);
$stmt->bindValue(':menupanel', $menupanel, PDO::PARAM_STR);
$stmt->bindValue(':menupanelmenu', $menupanelmenu, PDO::PARAM_STR);
$stmt->bindValue(':menubanner', $resimyol, PDO::PARAM_STR);
$stmt->bindValue(':idrand', $idrand, PDO::PARAM_STR);
// Eğer mevcut kayıt yoksa
if (!$existing_menu) {
foreach ($menuAdlari as $menuAdi) {
$stmt = $db->prepare("INSERT INTO menu (idrand, menuust, menusabit, menuad, menuslug, menuurl, menusira, menudil, menusite, menupanel, menupanelmenu, menubanner ) VALUES (:idrand,:menuust, :menusabit, :menuad, :menuslug, :menuurl, :menusira, :menudil, :menusite, :menupanel, :menupanelmenu, :menubanner )");
$stmt->bindValue(':menuust', $menuust, PDO::PARAM_STR);
$stmt->bindValue(':menusabit', $menusabit, PDO::PARAM_STR);
$stmt->bindValue(':menuurl', $menuurl, PDO::PARAM_STR);
$stmt->bindValue(':menusira', $menusira, PDO::PARAM_STR);
$stmt->bindValue(':menusite', $menusite, PDO::PARAM_STR);
$stmt->bindValue(':menupanel', $menupanel, PDO::PARAM_STR);
$stmt->bindValue(':menupanelmenu', $menupanelmenu, PDO::PARAM_STR);
$stmt->bindValue(':menubanner', $resimyol, PDO::PARAM_STR);
$stmt->bindValue(':idrand', $idrand, PDO::PARAM_STR);
$stmt->bindValue(':menuad', $menuAdi['menuAdiDil'], PDO::PARAM_STR);
$stmt->bindValue(':menuslug', $menuAdi['menuSlug'], PDO::PARAM_STR);
$stmt->bindValue(':menudil', $menuAdi['menudil'], PDO::PARAM_STR);
$stmt->execute();
}
} else {
$stmt = $db->prepare("UPDATE menu SET menuust = :menuust, menusabit = :menusabit, menuurl = :menuurl, menusira = :menusira, menusite = :menusite, menupanel = :menupanel, menupanelmenu = :menupanelmenu, menubanner = :menubanner WHERE idrand = :idrand AND menudil = :menudil AND id = :id");
$stmt->bindValue(':menuust', $menuust, PDO::PARAM_INT);
$stmt->bindValue(':menusabit', $menusabit, PDO::PARAM_STR);
$stmt->bindValue(':menuurl', $menuurl, PDO::PARAM_STR);
$stmt->bindValue(':menusira', $menusira, PDO::PARAM_INT);
$stmt->bindValue(':menusite', $menusite, PDO::PARAM_INT);
$stmt->bindValue(':menupanel', $menupanel, PDO::PARAM_INT);
$stmt->bindValue(':menupanelmenu', $menupanelmenu, PDO::PARAM_INT);
$stmt->bindValue(':menubanner', $resimyol, PDO::PARAM_STR);
$stmt->bindValue(':idrand', $idrand, PDO::PARAM_STR);
$stmt->bindValue(':menudil', $mendil, PDO::PARAM_STR);
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
$stmt->execute();
}
}