php yardım (Başlık bulamadım)
İl ve ilçe seçtirip kayıt ettiriyorum ilçe kısmı checkbox için de çoklu seçim yapabiliyor
buraya kadar bir sorunum yok
örnek : https://codepen.io/ebykdrms/pen/vYdvJvm
üye ili değiştirip her ilin ilçesinden veri ekleyebiliyor
bunu engellemem gerekiyor il değiştiricekse eski verileri sildirmeliyim
yani kısaca il değiştirip yeni ilçe ekleyecekse eski ilçe verilerini sildirmek istiyorum
Yada ek olarak siz ne yapardınız fikir de verebilirsiniz
$i = 0;
if(isset($_POST['ilce'])){
foreach ($_POST['ilce'] as $as) {
$islem = $db->prepare("INSERT INTO ilceler SET emlakci_id = ?, ilce = ?");
$islem = $islem->execute(array($emlakci['id'],$_POST['ilce'][$i]));
$i++;
}
}
$ii = 0;
if(isset($_POST['premium_ilce'])){
foreach ($_POST['premium_ilce'] as $as) {
$islem = $db->prepare("INSERT INTO ilceler SET emlakci_id =?, premium_ilce = ?");
$islem = $islem->execute(array($emlakci['id'],$_POST['premium_ilce'][$ii]));
$ii++;
}
<div class="setting__row">
<div class="field">
<div class="field__label"><?=$dil['19']?></div>
<div class="field__wrap" id="wrapper">
<select class="field__input" id="Iller" name="sehir" style="margin-bottom: 4px;">
<option value="0" disabled selected><?=$dil['20']?>...</option>
</select>
<div>
</div>
</div>
</div>
<div class="field">
<div class="field__label"><?=$dil['34']?></div>
<div class="field__wrap">
<div class="create__list">
<?php
$aStat = $db->query("SELECT * FROM ilceler WHERE emlakci_id = '{$emlakci['id']}'", PDO::FETCH_ASSOC);
if($aStat->rowCount()){
foreach( $aStat as $c ){ ?>
<?php if (!empty($c['ilce'])){ ?>
<label class="checkbox">
<span class="checkbox__inner">
<span class="checkbox__tick"></span>
<span class="checkbox__text">
<?=$c['ilce']?>
</span>
</span>
</label>
<?php }}} ?>
</div>
</div>
</div>
</div>
<?php if ($emlakci['premium_1'] == 1) { ?>
<div class="setting__row">
<div class="field">
<div class="field__label"><?=$dil['35']?></div>
<div class="field__wrap" id="premium">
<select class="field__input" name="premium_sehir" style="margin-bottom: 4px;">
<option value="0" disabled selected><?=$dil['20']?>...</option>
</select>
<div>
</div>
</div>
</div>
<div class="field">
<div class="field__label"><?=$dil['34']?></div>
<div class="field__wrap">
<div class="create__list">
<?php
$aStat = $db->query("SELECT * FROM ilceler WHERE emlakci_id = '{$emlakci['id']}'", PDO::FETCH_ASSOC);
if($aStat->rowCount()){
foreach( $aStat as $c ){ ?>
<?php if (!empty($c['premium_ilce'])){ ?>
<label class="checkbox">
<span class="checkbox__inner">
<span class="checkbox__tick"></span>
<span class="checkbox__text">
<?=$c['premium_ilce']?>
</span>
</span>
</label>
<?php }}} ?>
</div>
</div>
</div>
</div>
<?php } ?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
Sorunu şu şekil de çözdümm kontrol ettim emlakçı tablosun daki şehirle post verisin deki şehir uyuşuyomu diye
eğer uyuşuyor ise veriyi ekle eğer uyuşmuyorsa ilceler kısmını sıfırla yeni veriyi ekle olarak yaptımm
if(isset($_POST['ilce'])){
foreach ($_POST['ilce'] as $as) {
$query = $db->prepare("SELECT * FROM emlakci where id=:id AND sehir !=:sehir LIMIT 1");
$ss = $query->execute(array(":id"=>$_SESSION['kullanici']['id'],":sehir"=>post('sehir')));
$ss = $query->fetch(PDO::FETCH_ASSOC);
if ($ss) {
$islem = $db->prepare("INSERT INTO ilceler SET emlakci_id = ?, ilce = ?");
$islem = $islem->execute(array($emlakci['id'],$_POST['ilce'][$i]));
}else{
$delete = $db->exec("DELETE FROM ilceler WHERE emlakci_id = '{$_SESSION['kullanici']['id']}'");
if ($delete) {
$islem = $db->prepare("INSERT INTO ilceler SET emlakci_id = ?, ilce = ?");
$islem = $islem->execute(array($emlakci['id'],$_POST['ilce'][$i]));
}
}
$i++;
}
}
Evett sonunda çözdümm
$i = 0;
if(isset($_POST['ilce'])){
foreach ($_POST['ilce'] as $as) {
$query = $db->prepare("SELECT * FROM emlakci where id=:id AND sehir !=:sehir LIMIT 1");
$ss = $query->execute(array(":id"=>$_SESSION['kullanici']['id'],":sehir"=>post('sehir')));
$ss = $query->fetch(PDO::FETCH_ASSOC);
if ($ss) {
$ii = 0;
foreach ($_POST['secili_ilce'] as $ass) {
$delete = $db->exec("DELETE FROM ilceler WHERE id = '{$_POST['secili_ilce'][$ii]}'");
$ii++;
}
if ($delete) {
$islem = $db->prepare("INSERT INTO ilceler SET emlakci_id = ?, ilce = ?");
$islem = $islem->execute(array($emlakci['id'],$_POST['ilce'][$i]));
}else{
$islem = $db->prepare("INSERT INTO ilceler SET emlakci_id = ?, ilce = ?");
$islem = $islem->execute(array($emlakci['id'],$_POST['ilce'][$i]));
}
}
$i++;
}
}
Normal de tek bir il ve ilçe seçimi mevcut
Premium paket sayesin de il ve ilçe seçimi ikitane olmakta
İlçe kısımı çoklu seçim olduğundan kaynaklı ilceler tablosuna foreach döngüsün de kayıt ettiriyorum
seçili ilçeler kısmını da ilceler tablosundan çektiriyorum buraya kadar sorun yok
Şimdi sorun şurada başlıyor ordu yerine istanbul seçip ilçe ekleyebiliyorum ama ordu ilçeleri hala kayıtlı oluyor yani
istanbul ilin de ilçe olarak ordu ilçeleri yer alıyor bunun olmasını istemiyorum
Kayıt neyi amaçlıyor anladığım kadarıyla kullanıcının sadece bir il ve ilçe den fazla kaydı olnayacak
butona kaydet dedikten sonra başka sayfaya yönlendirip sayfa başında kaydınız alındı uyarısı verdirirsiniz.
Açık yazarsanız daha iyi olur kayıt ne için hangi sayfada gibi.