Şimdi Ara

Acemiliğin gözü kör olsun :((((

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
824
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba,

    Bir db var adı " arac " tablo adı da " tbl_arac " htmlde hazırladığım formdan gelen verileri tabloya eklemek istiyorum. Eklediğim bilgileride kontrol etmek istiyorum. İlk kontrol boş dolu kontrolü. Çalışıyor ve eğer dolu ise yüklüyor. Dbyebaktığımda yükleme işlemi tamam. sorun aynı kaydın birde fazla girilmesini engellemek. bunuda plaka üzerinden yapacağım. ama bir türlü beceremedim.


    denediğim kod bu şekilde

    $kontrol=mysql_query("SELECT * FROM tbl_arac WHERE plaka=$plaka", $dbconn);

    bu şekilde db den formdan gelen $plaka verisi ile eşleşen data olup olmadığını anlamaya çalışıyorum ama hata vermiyor ve yükleme yapıyor.

    if ($kontrol)
    {
    echo "bu araç kayıtlı." ;
    }
    elseif ($marka=="" or $model=="" or $plaka=="")
    {
    echo "Alanlar boş olmamalı...";
    }
    else
    {
    $sql="INSERT INTO tbl_arac (marka,model,plaka,mhacim,mno,sno,tfcikis,acins,lokasyon,muayene,tpul,kasko,locu) VALUES ('$marka ' ,' $model ',' $plaka',' $mhacim',' $mno',' $sno',' $tfcikis ',' $acins',' $lokasyon',' $muayene',' $tpul',' $kasko',' $locu')";
    $sorgu=mysql_query($sql);
    print "bilgi girişi tamam";
    }


    Şu an hatasız halide bu.

    "
    <?php
    $dbconn= mysql_connect("localhost", "root" ) or die ("Bağlantı da hata");
    mysql_select_db("arac", $dbconn ) or die ("db de hata");

    $marka = addslashes($_POST['marka']);
    $model = addslashes($_POST['model']);
    $plaka = addslashes($_POST['plaka']);
    $mhacim = addslashes($_POST['mhacim']);
    $mno = addslashes($_POST['mno']);
    $sno = addslashes($_POST['sno']);
    $tfcikis = addslashes($_POST['tfcikis']);
    $acins = addslashes($_POST['acins']);
    $lokasyon = addslashes($_POST['lokasyon']);
    $muayene = addslashes($_POST['muayene']);
    $tpul = addslashes($_POST['tpul']);
    $kasko = addslashes($_POST['kasko']);
    $locu = addslashes($_POST['locu']);


    if ($marka=="" or $model=="" or $plaka=="")
    {
    echo "Alanlar boş olmamalı...";
    }
    else
    {
    $sql="INSERT INTO tbl_arac (marka,model,plaka,mhacim,mno,sno,tfcikis,acins,lokasyon,muayene,tpul,kasko,locu) VALUES ('$marka ' ,' $model ',' $plaka',' $mhacim',' $mno',' $sno',' $tfcikis ',' $acins',' $lokasyon',' $muayene',' $tpul',' $kasko',' $locu')";
    $sorgu=mysql_query($sql);
    print "bilgi girişi tamam";
    }

    ?>
    "







  • Kayıt eklemeden önce bir fonksiyon yaz. Bu fonksiyon ile db deki plaka alanını girdiğin plaka ile kontrol ettir eğer değer tutuyor ise hata mesajı fırlat değilse kaydı gerçekleştir ;) PHP de yeniyim ama mantık budur;)

    ekleme:

    ayrıca db deki plaka alanını unique(benzersiz veri) olarak tanımlarsan aynı kayıttan 2. kez kaydetmene izin vermez;)



    < Bu mesaj bu kişi tarafından değiştirildi *albay* -- 6 Kasım 2007; 15:33:06 >
  • arkadaşın dediği mantıkla önce kontrol ettir. eğer tutmuyor ise die; komutu ile işlemeyi durdur. böylece die; dan sonraki komutlar işlemez ve veri tabanına kayıt yapmaz.
  • db de plaka uniq. kaydı yaptırmadan kontrol edeceğim ama komutları yazdığımda değişen birşey olmuyor. yada ben yanlış yazıyorum.
    "
    $kontrol=mysql_query("SELECT * FROM tbl_arac WHERE plaka=$plaka", $dbconn);

    if ($kontrol)
    {
    echo "bu araç kayıtlı." ;
    }
    elseif
    "
    diye devam ediyor. ama bu yazım doğru değil.
  • sderici kardeş kontrol alanını plakayı girdiğin alanın değeri ile karşılaştırma yapman gerekiyor bu kodda. yani ;

    if ($kontrol) = plaka alanı(örn. textbox1.text)
    {
    echo "bu araç kayıtlı." ;
    }
    elseif

    insert sorgusu

    "
    diye devam ediyor. ama bu yazım doğru değil.

    ayrıca bu sorguyu insertten önce yapman gerekir ;)
  • bir üst mesajda doğru değil diye yazdım zaten. ben doğru yazımı soruyorum.


    quote:

    Orjinalden alıntı: *albay*

    sderici kardeş kontrol alanını plakayı girdiğin alanın değeri ile karşılaştırma yapman gerekiyor bu kodda. yani ;

    if ($kontrol) = plaka alanı(örn. textbox1.text)
    {
    echo "bu araç kayıtlı." ;
    }
    elseif

    insert sorgusu

    "
    diye devam ediyor. ama bu yazım doğru değil.

    ayrıca bu sorguyu insertten önce yapman gerekir ;)


  • Merhaba arkadaşım;
    Plaka alanının tipi sayı değildir sanırım. Bu durumda doğru SQL cümlesinin;
    $kontrol=mysql_query("SELECT * FROM tbl_arac WHERE plaka='$plaka'", $dbconn);
    şeklinde olması gerektiği kanaatindeyim. Tırnaklara dikkat! Umarım böyle çalışır.
    Aslında en güzeli şöyle yapmak olurdu herhalde;

    $sql = "SELECT * FROM tbl_arac WHERE plaka = '" . $plaka . "'";
    $kontrol=mysql_query($sql, $dbconn);

    Gerçi şu addslashes fonksiyonlarına da kafam takılmadı değil hani..
    Kolay gelsin..



    < Bu mesaj bu kişi tarafından değiştirildi Elshuf -- 13 Kasım 2007; 18:02:02 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.