• 23-01-2024, 16:50:38
    #1
    Selamlar, aşağıdaki kodda veritabanına bilgileri eklerken eğer seri numarası daha önce kaydedilmiş ise sorgu ile 2.kez kaydetmesini engelliyorum fakat kayıt sırasında seri numarası 3 hane veya daha kısaysa bu sorguyu muaf tutabilir miyim?
    Yani envantere kaydedilecek ürünlerin seri numarası olmaması durumunda "-" koyup geçmek istiyorum fakat 1 kere "-" koyduktan sonra farklı bir seri numarası olmayan ürünü aynı şekilde kaydedemiyorum, bu sorunu çözümleyebilmek için alternatif bir yol var mıdır? veya ne yapmalıyım?
                     <?php
                     if(@$_POST['kaydet']) {
                      $envanter_kategori = $_POST['envanter_kategori'];
                      $envanter_marka = $_POST['envanter_marka'];
                      $envanter_model = $_POST['envanter_model'];
                      $envanter_serino = $_POST['envanter_serino'];
                      $zimmetlenen_personel = $_POST['zimmetlenen_personel'];
    
                      if($envanter_kategori<>"" && $envanter_marka<>"" && $envanter_model<>"" && $envanter_serino<>"" && $envanter_kullanimalani<>"" && $zimmetlenen_personel<>"") {
    
                        $varmi = $vtbaglanti->query("SELECT * FROM envanterler WHERE envanter_serino='$envanter_serino'",PDO::FETCH_ASSOC);
                        if ( $say = $varmi -> rowCount() ){
    
                            if( $say > 0 ) {
                                echo '<script>swal("Hata!","Yazmış olduğunuz seri numarası daha önce kaydedilmiş.","info");</script>';
                            }
                        } else {
    
                        $vtbaglanti->query("INSERT INTO envanterler (envanter_kategori, envanter_marka, envanter_model, envanter_serino, zimmetlenen_personel) VALUES     ('$envanter_kategori', '$envanter_marka', '$envanter_model', '$envanter_serino', '$zimmetlenen_personel')");
    
                        echo '<script>swal("Kayıt Başarılı!","Girmiş olduğunuz bilgiler envanter listesine kaydedildi.","success").then((value)=>{ window.location.href = "envanter-listesi.php"});</script>';
                        }
                      } else {
                        echo '<script>swal("Kayıt Başarısız","Lütfen tüm alanları eksiksiz doldurun.","error");</script>';
                      }
                      
                    }
                    ?>
  • 23-01-2024, 16:54:33
    #2
    11. satırdaki kodu aşağıdaki gibi değiştirip dener misin?
     $varmi = $vtbaglanti->query("SELECT * FROM envanterler WHERE envanter_serino='$envanter_serino' AND envanter_serino!='-'",PDO::FETCH_ASSOC);
  • 23-01-2024, 16:55:05
    #3
    İkinci bir alana daha ihtiyaç var. Yani en mantıklı çözümü bu. Veya 2. Field yerins ürün adıylada kontrol edip ekleme yapabilirsiniz. İsimlerde aynı olabiliyorsa maalesef eşsiz bir değer olmadan zor. Ya kendiniz bir eşsiz değer atayacaksınız ve ekleme/kontrolü yapacaksınız yahutta baştan bu değer olmalı. 2 aşamalı bir kontrolle bunu aşabilirsiniz kısacası.
  • 23-01-2024, 16:56:23
    #4
    ahmtcn37 adlı üyeden alıntı: mesajı görüntüle
    11. satırdaki kodu aşağıdaki gibi değiştirip dener misin?
     $varmi = $vtbaglanti->query("SELECT * FROM envanterler WHERE envanter_serino='$envanter_serino' AND envanter_serino!='-'",PDO::FETCH_ASSOC);
    - olduğu için eklemeyecek. Zaten var olduğundan farklıda olsa ürünler eklemez.
  • 23-01-2024, 16:57:38
    #5
    ahmtcn37 adlı üyeden alıntı: mesajı görüntüle
    11. satırdaki kodu aşağıdaki gibi değiştirip dener misin?
     $varmi = $vtbaglanti->query("SELECT * FROM envanterler WHERE envanter_serino='$envanter_serino' AND envanter_serino!='-'",PDO::FETCH_ASSOC);
    çok teşekkür ederim hocam, oldu
  • 23-01-2024, 16:59:25
    #6
    AzveNET adlı üyeden alıntı: mesajı görüntüle
    İkinci bir alana daha ihtiyaç var. Yani en mantıklı çözümü bu. Veya 2. Field yerins ürün adıylada kontrol edip ekleme yapabilirsiniz. İsimlerde aynı olabiliyorsa maalesef eşsiz bir değer olmadan zor. Ya kendiniz bir eşsiz değer atayacaksınız ve ekleme/kontrolü yapacaksınız yahutta baştan bu değer olmalı. 2 aşamalı bir kontrolle bunu aşabilirsiniz kısacası.
    yorumun için teşekkür ederim hocam, @ahmtcn37; hocamın söylediğini uyguladığımda sorunsuz çalıştı. seri numarası "-" yazdığımda sorgudan muaf tutuyor ve kayıt ediyor.
  • 23-01-2024, 17:00:57
    #7
    canbicerr adlı üyeden alıntı: mesajı görüntüle
    yorumun için teşekkür ederim hocam, @ahmtcn37; hocamın söylediğini uyguladığımda sorunsuz çalıştı. seri numarası "-" yazdığımda sorgudan muaf tutuyor ve kayıt ediyor.
    O zaman ben mevzuyu yanlış anlamışım 😀 ben yinede ekleme yapacaksınız sandım 😀
  • 23-01-2024, 17:09:21
    #8
    <?php
     if(@$_POST['kaydet']) {
      $envanter_kategori = $_POST['envanter_kategori'];
      $envanter_marka = $_POST['envanter_marka'];
      $envanter_model = $_POST['envanter_model'];
      $envanter_serino = $_POST['envanter_serino'];
      $zimmetlenen_personel = $_POST['zimmetlenen_personel'];
     
      if($envanter_kategori<>"" && $envanter_marka<>"" && $envanter_model<>"" && $envanter_serino<>"" && $envanter_kullanimalani<>"" && $zimmetlenen_personel<>"") {
     
        if(strlen($envanter_serino) > 3){
        $varmi = $vtbaglanti->query("SELECT * FROM envanterler WHERE envanter_serino='$envanter_serino'",PDO::FETCH_ASSOC);
        if ( $say = $varmi -> rowCount() ){
     
            if( $say > 0 ) {
                echo '<script>swal("Hata!","Yazmış olduğunuz seri numarası daha önce kaydedilmiş.","info");</script>';
            }
          }
        } else {
     
        $vtbaglanti->query("INSERT INTO envanterler (envanter_kategori, envanter_marka, envanter_model, envanter_serino, zimmetlenen_personel) VALUES     ('$envanter_kategori', '$envanter_marka', '$envanter_model', '$envanter_serino', '$zimmetlenen_personel')");
     
        echo '<script>swal("Kayıt Başarılı!","Girmiş olduğunuz bilgiler envanter listesine kaydedildi.","success").then((value)=>{ window.location.href = "envanter-listesi.php"});</script>';
        }
      } else {
        echo '<script>swal("Kayıt Başarısız","Lütfen tüm alanları eksiksiz doldurun.","error");</script>';
      }
       
    }
    ?>
  • 23-01-2024, 17:10:13
    #9
    + Olarak Query ve Insert şekliniz tehlikeli PDO kullanmanızı öneririm.