Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
855
Tıklama
0
Öne Çıkarma
Acemiliğin gözü kör olsun :((((
S
18 yıl
Yüzbaşı
Konu Sahibi

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";
}

?>
"

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



*
18 yıl
Teğmen

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 >
Bu mesaja 1 cevap geldi.
1
18 yıl
Yüzbaşı

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.


Bu mesaja 1 cevap geldi.
S
18 yıl
Yüzbaşı
Konu Sahibi

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.


Bu mesaja 1 cevap geldi.
*
18 yıl
Teğmen

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 ;)


Bu mesaja 1 cevap geldi.
S
18 yıl
Yüzbaşı
Konu Sahibi

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 ;)




Bu mesaja 1 cevap geldi.
E
18 yıl
Teğmen

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 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.