• 15-07-2020, 16:01:04
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar, php de yeniyim öğrenmeye çalışıyorum, bi yerde takıldım.

    Verileri android uygulamasından gönderiyorum. Mysql e kayıt ediyor onda sıkıntı yok. fakat aynı veri varsa kaydetmemesini istiyorum.

    kendi çalıştıramadığım kodlarım.

    <?php
    if($_POST){
    // androiddden gelen verileri al ve değişkene aktar
    
        $rapor_no = stripslashes($_POST["rapor_no"]);
    
    // veritabanı bağlantısını oluştur
    try{
    $baglanti = new PDO("mysql:host=localhost;dbname=VeritabanıAdı;charset=utf8", "Kullanıcı ADI", "SIFRE");
    $baglanti -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(PDOException $e){
    print $e -> getMessage();
    }
    
    
    $sor = mysql_num_rows(mysql_query("select * from d_veriler where rapor_no='$rapor_no'"));
    
    if($sor>0){
    
    echo "daha önce bu no eklenmiş";
    
    }else{
    
    $gir = $baglanti -> prepare("INSERT INTO d_veriler SET rapor_no = :t ));
    }
    
    }
    ?>
  • 15-07-2020, 16:08:54
    #2
    bağlantınız pdo, sorgunuz mysql birazdan düzenleyip atacağım.
  • 15-07-2020, 16:09:31
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    pdo bağlantısı açmışsın ama mysql_query atıyorsun buradan öğrenebilirsin.
  • 15-07-2020, 16:09:42
    #4
    $sor= $baglanti->query("select * from d_veriler where rapor_no='$rapor_no'" );
    if ( $sor->rowCount() ){
    echo "daha önce bu no eklenmiş";
    }else{
    $gir = $baglanti -> prepare("INSERT INTO d_veriler SET rapor_no = :t ));
    }
    şeklinde deneyin hocam
  • 15-07-2020, 16:10:48
    #5
    İlk giden formdan id ile like veya find komut ile veri tabanı içini arasın sonuç varsa var uyarısı yok ise kayıt işlemi yapsın şekilde olbilr
  • 15-07-2020, 16:13:53
    #6
    <?php
    if($_POST){
    // androiddden gelen verileri al ve değişkene aktar
    //eğer gelen değişken integer yani tam sayı ise güvenlik için stripslashes yerine intval fonksiyonundan geçir sonuç sadece rakam dönecektir.
    
    $rapor_no = intval($_POST["rapor_no"]);
    
    
    // veritabanı bağlantısını oluştur
    try{
    $baglanti = new PDO("mysql:host=localhost;dbname=VeritabanıAdı;charset=utf8", "Kullanıcı ADI", "SIFRE");
    $baglanti -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(PDOException $e){
    print $e -> getMessage();
    }
    
    //senin koduna mysql bağlantısı pdo olarak açılıyordu ama sen mysql_query ile işlem yapmaya çalışıyordun.
    //veritabanını mysql_connect ile açarsan mysql_query ile işlem yaparsın mysqli_query ile açarsan mysqli_query ile pdo ile açarsan pdo ile veritabanına ulaşırsın.
    
    $sor= $baglanti->query("select * from d_veriler where rapor_no='$rapor_no'", PDO::FETCH_ASSOC);
    
    if( $sor->rowCount() > 0){
    
    echo "daha önce bu no eklenmiş";
    
    }else{
    
    $gir = $baglanti -> prepare("INSERT INTO d_veriler SET rapor_no = :t ));
    }
    
    }
    ?>
    böyle dener misin? veritabanı bağlantısını pdo ile açıp sonra mysql_query ile ulaşmaya çalıştığın için sonuç dönmüyordu.
  • 15-07-2020, 16:17:49
    #7
    <?php$vt = mysqli_connect("localhost","DB_KULLANICIADI","DB_PASSWORD","DB_NAME");if (mysqli_connect_errno()){    echo "Failed to connect to MySQL: " . mysqli_connect_error();}mysqli_select_db($vt,"DB_NAME");if(isset($_POST['rapor_no'])){    $rapor_no = stripcslashes($_POST['rapor_no']);}$sql = "SELECT * FROM d_veriler where rapor_no='$rapor_no'";$conn = mysqli_query($vt, $sql);if($conn->num_rows > 0){    echo "daha önce eklenmiş";}else{    $e = mysqli_query($vt, "SQL SORGUSU");    if($e){        echo "başarıyla eklendi";    }else{        echo "eklenemedi";    }}?>
  • 15-07-2020, 16:29:22
    #8
    TuorElanesse adlı üyeden alıntı: mesajı görüntüle
    $sor= $baglanti->query("select * from d_veriler where rapor_no='$rapor_no'" );
    if ( $sor->rowCount() ){
    echo "daha önce bu no eklenmiş";
    }else{
    $gir = $baglanti -> prepare("INSERT INTO d_veriler SET rapor_no = :t ));
    }
    şeklinde deneyin hocam

    işime yaradı hocam çok teşekkürler.



    digiklan adlı üyeden alıntı: mesajı görüntüle
    <?php
    if($_POST){
    // androiddden gelen verileri al ve değişkene aktar
    //eğer gelen değişken integer yani tam sayı ise güvenlik için stripslashes yerine intval fonksiyonundan geçir sonuç sadece rakam dönecektir.
    
    $rapor_no = intval($_POST["rapor_no"]);
    
    
    // veritabanı bağlantısını oluştur
    try{
    $baglanti = new PDO("mysql:host=localhost;dbname=VeritabanıAdı;charset=utf8", "Kullanıcı ADI", "SIFRE");
    $baglanti -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(PDOException $e){
    print $e -> getMessage();
    }
    
    //senin koduna mysql bağlantısı pdo olarak açılıyordu ama sen mysql_query ile işlem yapmaya çalışıyordun.
    //veritabanını mysql_connect ile açarsan mysql_query ile işlem yaparsın mysqli_query ile açarsan mysqli_query ile pdo ile açarsan pdo ile veritabanına ulaşırsın.
    
    $sor= $baglanti->query("select * from d_veriler where rapor_no='$rapor_no'", PDO::FETCH_ASSOC);
    
    if( $sor->rowCount() > 0){
    
    echo "daha önce bu no eklenmiş";
    
    }else{
    
    $gir = $baglanti -> prepare("INSERT INTO d_veriler SET rapor_no = :t ));
    }
    
    }
    ?>
    böyle dener misin? veritabanı bağlantısını pdo ile açıp sonra mysql_query ile ulaşmaya çalıştığın için sonuç dönmüyordu.


    işime yaradı çok teşekkürler bilgi için.
  • 15-07-2020, 18:04:45
    #9
    Böylede kullanabilirsin

    https://kodyapistir.com/de9K9kaFAv