• 25-10-2020, 00:00:29
    #1
    Merhaba,

    Ben stok takip tarzı bir yazılım geliştiriyorum. Ancak Stok numarasının aynı kaydını engellemem gerek yapmak istediğim "Stok No" kısmında numarayı yazdığı gibi numara ekli ise uyarı vermesini istiyorum. Bu konuda tecrübeli hocalarımız yardımcı olursa çok memnun olurum.


    Kullandığım Kod
                        <div class="form-group col-2">
    <label for="exampleInputName3" class="bmd-label-floating">Stok No</label>
    <input type="text" class="form-control w-100" name="stokno">
    </div>
    <div class="form-group bmd-form-group pt-3 col-12">
    <button type="submit" class="btn btn-raised btn-primary mb-0">Ekle</button>
    <button type="submit" class="btn btn-raised btn-danger ml-1 mb-0">Geri</button>
    </div>
    </form>
    
    <?php
    
    if ($_POST) {
    $adsoyad = $_POST['adsoyad'];
    $stokno = $_POST['stokno'];
    $fiyat = $_POST['fiyat'];
    
    
    if ($adsoyad<>"" && $stokno<>"" && $fiyat<>"") {
    
    
    
    if ($db->query("INSERT INTO kayit (adsoyad, stokno, fiyat) VALUES ('$adsoyad','$stokno','$fiyat')"))
    
    {
    
    echo "Kayıt Eklendi";
    }
    else
    {
    echo "Hata oluştu";
    }
    İyi Forumlar
  • 25-10-2020, 00:05:45
    #2
    Backend Developer
    $select = $db->query("SELECT * FROM kayit WHERE stokno = '{$stokno}'")->fetch(PDO::FETCH_ASSOC);
    if($select!=true){
    echo"kayit oldu";
    }else {
    echo"bu veri mevcut";
    }
  • 25-10-2020, 00:06:05
    #3
    Veritabanından stokno alanını secondery key yaparsanız kayıt hata verir ve aynı kayıt bir daha oluşmaz
  • 25-10-2020, 00:09:00
    #4
    Eğer kullanıcı girdiği ekranda bu hatayı vermek istiyorsanız JS ile input a değer girildiğinde backend de request atarak ilgili "stok no" kayıtlı mı diye check ederek client e sonucu göstermelisiniz.

    Ayrıca arka planda kayıt işleminden önce bu stok kodunun varlığını kontrol etmelisiniz.
  • 25-10-2020, 00:11:30
    #5
    LENOX adlı üyeden alıntı: mesajı görüntüle
    $select = $db->query("SELECT * FROM kayit WHERE stokno = '{$stokno}'")->fetch(PDO::FETCH_ASSOC);
    if($select!=true){
    echo"kayit oldu";
    }else {
    echo"bu veri mevcut";
    }
    erkancaglar adlı üyeden alıntı: mesajı görüntüle
    Veritabanından stokno alanını secondery key yaparsanız kayıt hata verir ve aynı kayıt bir daha oluşmaz

    Merhaba

    Desteğiniz için çok teşekkürler. Ek te eklediğim görsel gibi Stok No yazıldığı gibi sorgu yapıp numara aynı ise uyarı vermesini istiyorum.
  • 25-10-2020, 00:14:19
    #6
    22. satırdan sonra şöyle deneyebilirsin:

    if ($db->query("SELECT * FROM kayit WHERE stokno = $stokno") !== FALSE){
    if ($db->query("INSERT INTO kayit (adsoyad, stokno, fiyat) VALUES ('$adsoyad','$stokno','$fiyat')")) {
    echo "Kayıt eklendi.";
    } else {
    echo "Hata oluştu.";
    }
    } else {
    echo "Bu stok numarası ile daha önce ürün eklenmiş.";
    }
  • 25-10-2020, 00:16:29
    #7
    ven adlı üyeden alıntı: mesajı görüntüle
    Merhaba

    Desteğiniz için çok teşekkürler. Ek te eklediğim görsel gibi Stok No yazıldığı gibi sorgu yapıp numara aynı ise uyarı vermesini istiyorum.
    O zaman olay biraz daha farklılaşır. Eğer jQuery kullanıyorsan basit bir şekilde stok numarasının yazıldığı input'un ister change ister focusout olayını izleyip, Ajax ile bir PHP dosyasını tetiklemen ve yukarıda paylaştığım gibi veritabanından sorgu yapıp, sonucu 1 veya 0 olarak return etmen lazım. Bu sonuca göre de ekrana yine JS kullanarak bir uyarı basabilir veya input'un rengini vs. kırmızı yapabilirsin.