php

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

Hiç durma, hemen paylaş ;-)

    22 Yorum

    1. ONURTEZ

      03.06.2010

      Cevapla

      Bu sayfa daha degısık anlatılabılır sıte genelleme olarak guzel ancak sıralamalar cok yanlıs db ye verı gonderme edıtleme sılme gıbı es deger konular bı yerde toplanabılır
      anlatan arkadasın elıne koluna saglıkl

    2. ozlem

      04.28.2010

      Cevapla

      Bilgileriniz için çok teşekürler…

    3. ufuk

      05.11.2010

      Cevapla

      1 CREATE TABLE `test`.`defter` (
      2 `defter_id` INT( 5 ) NOT NULL AUTO_INCREMENT ,
      3 `defter_isim` VARCHAR( 100 ) NOT NULL ,
      4 `defter_soyisim` VARCHAR( 100 ) NOT NULL ,
      5 PRIMARY KEY ( `defter_id` ) ,
      6 UNIQUE (
      7 `defter_id`
      8 )
      9 ) ENGINE = MYISAM CHARACTER SET latin5 COLLATE latin5_turkish_ci;

      şu kodları ne diye nereye kaydediyoruz ? bende appserv kurulu.. daha yeniyim ve ad soyad girildiğinde ekrana yazdırılmasını istiyorum yardımcıolurmusunuz ?

      • Daimon

        05.11.2010

        Cevapla

        Bu kodlar formdan aldığımız verileri saklayacağımız veritabanını oluşturma kodlarıdır. Formdan gelen veriyi veritabanına kaydettirmeden sadece ekrana yazdırmak istiyorsanız; formdan aldığınız verileri değişkenlere atadıktan sonra echo komutu ile ekrana yazdırabilirsiniz.

    4. ufuk

      05.12.2010

      Cevapla

      teşekkür ederim bilgilerinizden yola çıkarak işimi hallettim.. benim için ilk adım oLdu :))

    5. nurullag

      07.07.2010

      Cevapla

      hocam ben if else post gibi bir çok sorguyu ezberledim.
      fakat bu sayfadakiler de mi ezberlenmeli ? veya coderlar bunları ezbere mi biliyor uğraşsam ben de ezberlerim elbet ama biraz uzunmuş özellikle şu tablo oluşturma kodu ayrıca tabloyu notdefterine o kodları yazıp x.sql diye kaydedip import mu edeceğiz ?

      • yusuf karsuyu

        02.26.2012

        Cevapla

        kardeşim sana benden bir öneri ezberleme sürekli uygulama yap işte iki input alanı yap veri girişi yap vs ancak öyle öğrenirsin yoksa koda bak öğren o öyle olmuyo ikincisi bu şekılde yazabilirsin sql olarak veya php myadmine gir o gördsüğün kodlara gerek yok veya xml öğren ordan çek veya access ile yap veya bir not defterine yaz ordan çek dosya kodarı ile seçenek çok

    6. soner genel

      07.11.2010

      Cevapla

      ben biraz acemiyim bazı konuları anlamıyorum

      ya resimli

      ya vidyo görüntülü olsa daha iyi olur

      php dilini yeni tanıyorum

      yinede teşekkürler

    7. soner

      07.21.2010

      Cevapla

      local hosta kurunca sürekli hata alıyorum.

      Parse error: syntax error, unexpected T_STRING in C:\host\www\kaydet.php on line 17

      17. satır: $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.”);
      bunun nedeni ne olabilir?

      not: easyphp kullanıyorum.

    8. kuledibi

      07.23.2010

      Cevapla

      Bu yazının listele sil düzenle olarak uamrım devamı gelir..

      • phpdili

        07.24.2010

        Cevapla

        Devamı gelecektir elbette, ilginiz için teşekkürler.

    9. Mubi

      10.08.2010

      Cevapla

      Anlatimlariniz ve ornekleriniz MUKEMMEL. Bilgisayar bilgisi olmayan biri bile bununla PHP programcisi olabilir. Ancak, ben de diger bir kac yorumcu gibi siralamadan yana sikayetciyim.

    10. Mubi

      10.08.2010

      Cevapla

      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.

    11. Mubi

      10.08.2010

      Cevapla

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

    12. ismet

      10.09.2010

      Cevapla

      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ı

      • phpdili

        10.10.2010

        Cevapla

        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.

    13. ayse aysegul

      10.24.2010

      Cevapla

      veritabanına resim ekleyip görüntülemeyi nasıl yapabilirm?

      • phpdili

        10.25.2010

        Cevapla

        Ekleyeceğiniz resmin ismini veritabanına yazdırıp, sonra o isme sahip resmi html etiketleriyle gösterebilirsiniz. Mantık tamamiyle bu yöndedir.

    14. Sena

      05.18.2011

      Cevapla

      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…

    15. behnan

      07.20.2012

      Cevapla

      hocam şimdi dediğiniz kodları uyguladım ve ftp ye attım ama bana bu hatayı verio
      ” Warning: mysql_query() [function.mysql-query]: Access denied for user ‘www-data’@’localhost’ (using password: NO) in /data/multiserv/users/760444/projects/2019191/www/Yeni klasör/kaydet.php on line 5 ”

      on line 5 ise bu yazı : ” $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.”); ” bunda nasıl bir sorun vardır anlamadım yardımcı olurmusunuz…

    16. CyberBoard

      11.28.2013

      Cevapla

      Merhabalar;
      Kodlar ile veritabanı oluşturdum, yine aynı şekilde tablo ve sütun oluşturdum. Bunları listeleyip görebiliyorum.
      Benim sorunum form ile veritabanına kayıt ekleyememe kodlarım aşağıdadır.

      Form Kodu:

      İsim :
      Fiyat :
      Stok :

      Gonder.php

      Hata gerçekleşmeid diye yorum alıyorum ilk tablo ismindeki tablonun sütunları ve değerleri aşağıdadır.
      İd: AUTO_INCREMENT
      ilktablo_ad
      ilktablo_fiyat
      ilktablo_stok

      bunu ödev amaçlı yapıyorum yardımcı olursanız sevinirim.

    17. Uğur

      05.06.2014

      Cevapla

      hocam php ye yeni başladım sayılır bişiler yapmaya çalışıyorum.

      Şöyle bir sorum olacak veritabanına kayıt ekledikten kayıt.php de beyaz ekranda kalıyor. istediğim sayfaya yönlendiremiyorum. nasıl olacak bu iş

    Bir Cevap Yazın