v2.5.2
Giriş yap

php yardım (Başlık bulamadım)

emmir2
341 defa görüntülendi

İ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  } ?>
Cevap yaz
Cevaplar (5)
emmir2
916 gün önce

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++;
                              }
                          }
emmir2
916 gün önce

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++;
                              }
                          }
emmir2
916 gün önce

Bu da tam olmadı delete ekleyince premium da siliniyor + tek bir veri ekliyorr

emmir2
916 gün önce

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

kartal
916 gün önce

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.