• 15-07-2019, 22:43:47
    #1
    Merhaba arkadaşlar,

    Aşağıdaki kodları kullanarak karakter paneline gelen başvuruyu onaylayıp, oyuncular tablosuna insert ettikten sonra basvuru tablosundan silmek istiyorum, onay butona bastığım zaman açılan bu sayfada karakteri oyuncular tablosuna insert etmiyor fakat başvuru tablosundan kaydını siliyor. Yardımcı olurmusunuz ? illa pdo kullanacağım diye bir deyim yok.


    <?php
    
    $karakter=$_GET['oyuncu'];
    
    
    try {
        $db = new PDO("mysql:host=178;dbname=vim;charset=utf8", "root", "vm0");
    } catch ( PDOException $e ){
    print $e->getMessage();
    }
    
    
    $statement = $db->prepare("SELECT * FROM karakterbasvuru WHERE KarakterAdi = :oyuncu");
    $statement->execute(array( ":oyuncu" => $karakter ));
    $duzenle = $statement->fetch(PDO::FETCH_ASSOC);
        if( $statement->rowCount() ){
        
            $karakter_sql = $duzenle['SQLID'];
            $karakter_adi = $karakter;
            $karakter_sifre = $duzenle['md5'];
            $karakter_yas = $duzenle['kyas'];
            $karakter_cinsiyet = $duzenle['kcinsiyet'];
            $karakter_dogumyeri = $duzenle['kdogumyeri'];
            $karakter_tenrengi = $duzenle['ktenrengi'];
            
    
    
      
    
      
            $ekle = $db->prepare("INSERT INTO oyuncular SET Isim=?, Sifre=?, Yas=?, Cinsiyet=?, DogumYeri=?, TenRengi=?, forumid=?");
            $ekle->execute(array($karakter_adi, $karakter_sifre, $karakter_yas, $karakter_cinsiyet, $karakter_dogumyeri, $karakter_tenrengi, $karakter_sql));
        
            if($ekle){
    
                $query = $db->prepare("DELETE FROM karakterbasvuru WHERE KarakterAdi = :oyuncu");
                $delete = $query->execute(array(
                   'oyuncu' => $_GET['oyuncu']
                ));
            echo "Başarıyla eklendi";
            
            }else{
            
            echo "Bir sorun oluştu";
            
            }
    
        }
    
    
    
    
    ?>
  • 15-07-2019, 22:59:31
    #2
    display_errors'u aktif hale getirerek mevcut hataları çıktı olarak alabilirsin.
    Sıkıntı mysql tarafında yaşanıyor olabilir. Uyuşmayan bir yapı karakteri giriyor olabilirsin.
  • 15-07-2019, 23:05:48
    #3
    $karakter_sql = $duzenle['SQLID'];
    $karakter_adi = $karakter;
    $karakter_sifre = $duzenle['md5'];
    $karakter_yas = $duzenle['kyas'];
    $karakter_cinsiyet = $duzenle['kcinsiyet'];
    $karakter_dogumyeri = $duzenle['kdogumyeri'];
    $karakter_tenrengi = $duzenle['ktenrengi'];

    bunları echo ettirip verilerin doğru geldiğinden emin olabilir misiniz?
  • 15-07-2019, 23:16:12
    #4
    Üyeliği durduruldu
    hocam hata
    [COLOR=#1ABC9C][FONT=Book Antiqua]$statement = $db->prepare("SELECT * FROM karakterbasvuru WHERE KarakterAdi = :oyuncu");[/FONT][/COLOR]
    [COLOR=#1ABC9C][FONT=Book Antiqua]$statement->execute(array( ":oyuncu" => $karakter ));[/FONT][/COLOR]
    [COLOR=#1ABC9C][FONT=Book Antiqua][/FONT][/COLOR]

    burada execute ederken tanımladığınız gibi kullanmadığınızdan kaynaklıdır execute ederken : (iki noktayı) silerek kullanırsanız çalışır
  • 15-07-2019, 23:17:33
    #5
    Yeniden $ekleyi önceki prepare de ki ekleyle aynı isim koymaktan kaynaklanabilir.

    Birde
    $ekle = $db->prepare("INSERT INTO oyuncular SET Isim=?, Sifre=?, Yas=?, Cinsiyet=?, DogumYeri=?, TenRengi=?, forumid=?");burdaki $ekle değişkenine "->errorInfo()" fonksiyonunu çağırıp print_r ile bastırırsanız pdo tarafından kaynaklanan bir hata varsa görebilirsiniz. İyi kodlamalar ^^
  • 15-07-2019, 23:19:10
    #6
    BatuhaNN adlı üyeden alıntı: mesajı görüntüle
    $karakter_sql = $duzenle['SQLID'];
    $karakter_adi = $karakter;
    $karakter_sifre = $duzenle['md5'];
    $karakter_yas = $duzenle['kyas'];
    $karakter_cinsiyet = $duzenle['kcinsiyet'];
    $karakter_dogumyeri = $duzenle['kdogumyeri'];
    $karakter_tenrengi = $duzenle['ktenrengi'];

    bunları echo ettirip verilerin doğru geldiğinden emin olabilir misiniz?
    burada ki echoları kontrol ettim ve @Zartnet; hocamın hatırlatmasıyla display_errorsu aktif hale getirdikten sonra sifre (md5) deişkenini yanlış atadığım için sorun olmuş.. İkinizede çok teşekkür ediyorum hocam. Allah razı olsun
    Zartnet adlı üyeden alıntı: mesajı görüntüle
    display_errors'u aktif hale getirerek mevcut hataları çıktı olarak alabilirsin.
    Sıkıntı mysql tarafında yaşanıyor olabilir. Uyuşmayan bir yapı karakteri giriyor olabilirsin.


    Konu kilitlenebilir, cevap yazan herkese teşekkür ediyorum.