Form aracılığıyla veritabanına kayıt ekleme
PHP ile veritabanı uygulamalarında, genel olarak yapılacak işlemler. Veritabanına veri kaydetme, veri listeleme, veri düzenleme ve veri silme işlemleridir. Bu işlemlerden ilk olarak veritabanına veri kaydetme konusunu inceleyeceğiz. Sonraki yazılarımızda, sırasıyla veri listeleme, düzenleme ve silme işlemleriyle devam ederiz.
Öncelikle, bir forma inputlar aracılığıyla girilmiş olan bilgileri, post metoduyla diğer bir sayfaya aktarıp, aktardığımız sayfada veritabanı bağlantısı olduğu varsayılarak kayıt işlemi yapılacaktır.
Kayıt için gerekli olan örnek bir form oluşturalım:
<form action="kaydet.php" method="post"> <label>İsim :<input type="text" name="isim" id="isim" /></label> <label>Soyisim :<input type="text" name="soyisim" id="soyisim" /></label> <label> <input type="submit" name="button" id="button" value="Gönder" /></label> </form>
[ad code=1 align=center]
Üstte gördüğümüz gibi, kaydet.php sayfasına post edilen, isim ve soyisim olarak adlandırılmış iki tane input ve formu submit etmemizi sağlayan bir buton bulunmaktadır. Burda önemli olan nokta, inputların ‘name’ değerleridir.
Kayıt yapacağımız tablo yapımız;
CREATE TABLE `test`.`defter` ( `defter_id` INT( 5 ) NOT NULL AUTO_INCREMENT , `defter_isim` VARCHAR( 100 ) NOT NULL , `defter_soyisim` VARCHAR( 100 ) NOT NULL , PRIMARY KEY ( `defter_id` ) , UNIQUE ( `defter_id` ) ) ENGINE = MYISAM CHARACTER SET latin5 COLLATE latin5_turkish_ci;
Formumuz ve tablomuz hazır olduğuna göre, kaydet.php dosyasına geçiyoruz;
/*
Veritabanı bağlantı kodları burada oluyor.
Bağlantı için ayrıntılı bilgi : http://www.phpdili.com/mysql/php-ile-mysql-baglantisi-kurmak.html
*/
//Form post metoduyla gönderilen bilgileri alıp değişkenlere atayalım.
$ad = $_POST['isim'];
$soyad = $_POST['soyisim'];
//Veritabanında bulunan 'defter' isimli tablonun 'defter_isim' ve 'defter_soyisim' alanlarına kayıt edelim.
$kaydet = mysql_query("insert into defter (defter_id, defter_isim, defter_soyisim) values (NULL, '$ad', '$soyad')") or die("Hata: kayıt işlemi gerçekleşemedi.");
Tüm veritabanına kayıt işlemleri, genel olarak yukarda bahsedilen mantıkta gerçekleştirilmektedir. Yukarda oluşturulan değişkenleri farklı fonksiyonlardan geçirerek, güvenlik açısından doğabilecek sıkıntıları engelleyebiliriz.
Sıradaki Konu :
Veritabanına eklediğimiz kayıtları listeleme
[...] Bu Yazıyı Paylaş : PHP ile MySQL veritabanına veri kaydetme, veri listeleme, veri düzenleme işlemlerinden sonra sıra sakladığımız verileri silme [...]
Anlatimlariniz ve ornekleriniz MUKEMMEL. Bilgisayar bilgisi olmayan biri bile bununla PHP programcisi olabilir. Ancak, ben de diger bir kac yorumcu gibi siralamadan yana sikayetciyim.
Mesela bir ornek programda su sekilde baslanabilir:
1- Giris (Formlar)
(yukarda 3 ayri bolumde verilen bilgiler/aciklamalar var ama mesela "örnek bir form oluşturalım: " denmis ve 2 ayri kod verilmis ancak bunlari kaydetmemiz gerekli mi degil mi belirtilmeden hemen baska bir koda gecilmis ve kaydet.php dosyasina gecilmis)
2- Gelisme
a) Kaydet
b) Duzenle
c) Sil
d) Hesapla(Formul hesap alani)
3- Sonuc/Cikti
Ornek vereyim
1-Form Kismi:
Urun No (autoNo):
Barcode No :
Urun ismi:
Urun Foto:
Urun Olculeri (Kg, Cm vs):
Urun Fiyati:
2- Bur urunler uzerinde duzenleme, ekleme ve silme yapilabilecek
3- Cikti Kismi:
Siralama ihtimalleri (isme gore, numaraya gore vs)
Urun No (autoNo):
Barcode No :
Urun ismi:
Urun Foto:
Urun Olculeri (Kg, Cm vs):
Urun Fiyati:
olarak yayinlanabilecek.
Ancak burda urunleri ekleme ve duzenleme ve yazdirma ya da yayinlama asamasina getirecek bir programlama ornegi devamlansa cok daha guzel olur dusuncesindeyim ki bir cok programci adayi icin de hem egitici hem de tamamlayici olur.
Ancak verdiginiz orneklerde sadece belki kendi acemiligimizden olsa gerek mi bilmiyorum baglayicilik yok veya biz/ben karistiriyorum.
Kolay gelsin cok guzel, siralamayi karistirmazsam ansizin bir PHP programcisi olarak karsiniza cikabilirim
CREATE TABLE `test`.`defter` (
`defter_id` INT( 5 ) NOT NULL AUTO_INCREMENT ,
`defter_isim` VARCHAR( 100 ) NOT NULL ,
`defter_soyisim` VARCHAR( 100 ) NOT NULL ,
PRIMARY KEY ( `defter_id` ) ,
UNIQUE (
`defter_id`
)
) ENGINE = MYISAM CHARACTER SET latin5 COLLATE latin5_turkish_ci;
Bu kodları phpmyadminde oluşturduğum db nin içinde SQL bölümüne yapıştırıyorum ve git dediğimde şu hatayı alıyorum
#1050 – Table 'defter' already exists
neyi yanlış yapıyorum acaba veri tabanımda bu şekilde pn_6446178_test free bir host kullanıyorum. Deneme amaçlı
Table 'defter' already exists : defter isimli bir tablo bulunduğu için böyle bir uyarı alıyorsunuz. Aynı isme sahip 2 tablo oluşturamazsınız.
veritabanına resim ekleyip görüntülemeyi nasıl yapabilirm?
Ekleyeceğiniz resmin ismini veritabanına yazdırıp, sonra o isme sahip resmi html etiketleriyle gösterebilirsiniz. Mantık tamamiyle bu yöndedir.
yorumlanabilir bir site hazırlayıp o yorumlarında yorum yapılan sayfanın altında görünmesini istiyorum aynı sizin sayfanızda olduğu gibi. yukarıda ki kodlar sadece veri tabanına bilgileri kayıt etmeyi sağlıyor. o yorumların ekranda görünmesi için gerekli kodları yazarmısınız ? yardımcı olursanız sevinirim…