Codeigniter Dersleri – 14 – Veritabanına Veri Ekleme
Bu dersimizde hazırlamış olduğumuz formu kullanarak database imize veri ekleyeceğiz. Bunun için ilk yapmamız gereken controller dosyamızda submit butonuna basıldığını anlayan bir fonksiyon yazmak. pizza.php dosyamızı aşağıdaki gibi düzenleyelim. İçine model dosyamızı çağıran fonksiyon yazıyoruz.
Burada submit butonuna bastığımızda insert_new_entry() fonksiyonu çağrılacak.
Şimdi bu insert_new_entry() fonksiyonumuzu model dosyamıza yazalım. Bu yeni bir fonksiyon olarak pizza_model.php içine yazılacak. Başka herhangi bir fonksiyonun içine yazılmayacak.
Bu değişikliğide yaptıktan sonra view dosyamızda verileri daha iyi çekebilmek için küçük bir değişiklik yaptık. Burası çok önemli değil ancak pizza_view.php dosyanızı güncellerseniz iyi olur.
Şimdi forma bir şeyler yazın ve çalışmasını gözlemleyin.
Ancak öncesinde databaseimizde yaptığımız bir değişikliği söylemeliyim ki hata oluşmasın. Kolaylık olması açısından pizza tablomuzda bulunan type ve thin_edge alanlarını int yerine varchar a dönüştürdük.
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Codeigniter Dersleri – 13 – Html Stilleri
Sonraki: Pardus Alageyik Çıktı ! >>>
Örneğin sipariş eklenince bir uyarı mesajı gelse güzel şekilde JQUERY ile filan olabilir mesela , siparişiniz alınmıştır. Veya bilgileri eksik girince hata mesajı verse şunlar olmadan sipariş alınamaz diye olsa süper olur.
Şu anda temel bilgileri vermeye çalışıyorum. Onlar biraz daha advance. Derslerimiz devam eder ve üst düzey anlatıma geçersem, onlarıda yaparız ama şu anda amacımız codeigniter temelli anlatım. İlginiz için teşekkürler.
pizza_view sayfasında neden
bu satırı kullandık?
foreach in görevi nedir burada? onu kullanmasak olmaz mı?
cevabınız için şimdiden teşekkür ederim. iyi çalışmalar…
Sorunuzda galiba eksilik var, tam anlayamadım sorunuzu.
kodu yazdım ama yorumu gönderince gözükmedi sorumda.
pizza_view.php sayfasında
“php foreach($orders as $row)”
foreach kullandık. bunun görevi nedir o sayfada onu tam anlayamadım. foreach kullanmadan da yapamaz mıyız acaba?
Bildiğiniz gibi ekrana siparişleri basıyoruz. Foreach kullanırken, her bir loop(dönüşte) ta sadece bir siparişin tüm bilgilerini row değişkenine atıyoruz, ve kodun ilerleyen kısmında bilgileri çekiyoruz. Eğer tek bir sipariş olsaydı dediğinize gerek kalmayacaktı. Sizin öneriniz nedir.
söylediğinizi anladım. önerim olduğundan dolayı sormamıştım. foreach ile çalıştıramadım kodları. böyle bir hata alıyorum.
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: core/Loader.php(679) : eval()’d code
Line Number: 14
Şu haliyle hatayı anlayamadım. Hata muhtemelen foreach içine gönderdiğiniz parametre ile alakalı.Parametreyi bir daha kontrol edin. Yazının sonunda bi kaç düzeltmede bulunmuştum. Onları uyguladınız mı?
evet uyguladım ama yine aynı malesef 🙁
Projenin kaynak kodlarını paylaştım. İndirip kontrol edebilirsiniz.
Codeigniter Pizza Projesi Kaynak Kodları
tamam teşekkür ederim. kolay gelsin
Merhaba,
Verdiğiniz adımları adım adım uyguladım ancak şöyle bir problem var, model içindeki datayı doldururken id değişkenini default olarak sıfır alıyor, eger orada kendim bir id ataması yaparsam (var olmayan) kabul edip onuda tabloya yazıyor, acaba bu id değişkenini her kayıt için nasıl artan yapabiliriz.
Paylaşımlarınız için teşekkürler.
Problemi aşagıdaki kodu ekleyerek ve sonra data dizinde ‘id’ => $id eklemesini yaparak
$this->db->select_max(‘id’);
$query = $this->db->get(‘pizza’);
foreach($query->result() as $row){
$id = $row->id + 1;
}
Çözmüş oldum ama bu durumda id yaratmasını ben yapmış oluyorum bunu her yeni girdi için kendisinin oluşturması gerekmezmiydi ?
Database inizde tablo oluştururken id alanını auto_increment yaparsanız id ler otomatik artan olacak ve sizin birşey yapmanıza gerek kalmayacaktır. Bunu deneyebilirsiniz.
merhabalar.
oluşturduğum form sayfamdan veri tabanına veri eklerken hatalı ekliyor.form sayfasından kullanıcı adı, kombi aç-kapa,televizyon aç-kapa bilgilerini giriyorum.ama kombi ile televizyon değişkenlerimi veri tabanında int(1) olarak alırsam ne seçersem seçim “kapalı” varchar alırsam ikisi de açık olarak kaydediliyor.
bunu nasıl düzeltebilirim??
merhabalar.
dediklerinizi uygulayarak kendi sitemi yapmaya çalışıyorum ama bir sorunum var.form sayfamda kombi aç-kapa ve televizyon aç-kapa diye butonlar bulunuyor.değişkenleri veri tabanında int(1) şeklinde tanımladığımda hangi butonu seçersem seçim açık olarak kaydoluyor.varchar yapınca da kapalı olarak.
bunu düzeltmek için ne yapabilrim??
Eren, Öncelikle bu kombi aç kapa için checkbox mı kullanıyorsun? Bunu bilmem gerekiyor. Eğer checkbox kullanıyorsan bizim derslerimizdeki örneklerin aynısını yapsan çalışması gerekir. Örneğin database de int(1) olara tutuyorsan, insert veya update işlemi sırasında şu şekilde kullanabilirsin.
'thin_edge'=>$this->input->post('kenar')=='yes'?1:0
Eğer varchar kullanacaksan
'thin_edge'=>$this->input->post('kenar')
şeklinde kullanman gerekiyor.merhaba ^^ formdaki alanı
name="gsira[]"
şeklinde yapıp oluşan diziyi veri tabanına ekletmek istiyorum nasıl yaparım =)$getir = implode('-',$this->input->post('dgsira'));
$gsira = explode('-',$getir);
bu şekilde veri elemanlarını oluşturdum (doğru oaln bumu bilmiyorum ama 😀 ) fakat bunu insert ettiremiyorum =/ yardımınız için teşekkrüelr koaly gelsin
şimdi option var elimde şehirler için onu nasıl seçebilirim seçili itemi nasıl görebilirim kodla
öncelikle paylaşımlarınız için teşekkürler
pizza eklerken mesela kendi projemde gerekli sizin projenizde saçma dura
bilir kullanıcın idsi gerek postla olmaz sessionla denemeye çalışıyorum çıkamadım 🙁 bunu nasıl yapabilirim pazartesine kadar yanıt verebilriseniz sevirim aksi takdirde bulmuş olmam gerek :=)
Tam olarak anlayamadım sorunuzu, pizzayı ekleyen kullanıcının kullanıcı id’si mi gerekiyor o anda? Peki session la neden yapamadınız?
gençlik işte teşekkürler ben sessiondan almıyordum ilkte baya bir karıştırdım sonralarda sayenizde yayınladım sitemi
http://www.yemekciyiz.net/
yardımınız için teşekkür edeirm.
saygılarım
Merhaba şu ana kadar olan derslere ait 2 problem yaşadım.
Birincisi oluşturulan formda, butonun value değeri “Sipariş Ver!” yazısı çıkmıyor. İkincisi ise veri eklemiyor. Butonu tıklayınca, sayfa yenileniyor ancak herhangi bir işlem yapmıyor. Sizin paylaştığınız kodları da indirip denedim ancak onda da bu iki hata mevcut. İşin enteresanı indirdiğim dosyada ilerleyen derslerde anlatılcak olan sil komutu vardı ve onlar çalışıyordu.
Sorun neden kaynaklanıyo olabilir?
Bu arada “Sipariş Ver!” yerine “Siparis Ver!” şeklinde yazınca iki sorun da düzeldi. Türkçe karakter yüzünden sorun yaratıyormuş.
Çok enteresan.
Merhaba.
Fatal error: Call to undefined method pizza_model::insert_new_entry() in C:\xampp\htdocs\Codeigniter\application\controllers\pizza.php on line 24
böyle bir problem ile karşılaşıyorum.
pizza.php dosyamın 24. satırı bu şekilde : $this->pizza_model->insert_new_entry(); // yeni eleman eklemek için model dosyamızı çağırdık
bu satır yerine echo 1; yazınca 1 geliyor, sorunsuz çalışıyor. insert_new_entry’i bulamıyor galiba sorunu nasıl düzeltebilirim ?
Fatal error: Call to undefined method pizza_model::insert_new_entry() in
sorununu aşağıdaki düzeltmeyi yaparak çözdüm ben.
pizza tablosunda bulunan type ve thin_edge alanlarını int yerine varchar a dönüştür.
Yorum Bırakın!
En Son Yazılanlar
Codeigniter Dersleri
Kategoriler
Teknoloji Haberleri
Android Dersleri
Arşiv
Sitemizin QR Kodu
Yeniliklerden İlk Sizin Haberiniz Olsun
KodMerkezi.Net Facebookta
En Çok Okunanlar
En Son Aranan Kelimeler
En Çok Oy Alanlar
Etiket Bulutu
İlginizi Çekecek Siteler
Arşiv
Yönetim
En Son Yapılan Yorumlar
En Çok Okunanlar