Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

PHP ve MySQL kullanarak Alışveriş Sepeti Oluşturma

by
Difficulty:AdvancedLength:LongLanguages:

Turkish (Türkçe) translation by Nevres Emre Alsancak (you can also view the original English article)

Bu haftaki ekran kaydı(screencast) + dersinde size PHP ve MySQL ile kendi alışveriş sepetinizi nasıl oluşturacağınızı öğreteceğiz Göreceğiniz gibi düşündüğünüz kadarda zor değil.


Ekran Kaydı Önizleme



1. Adım

Öncelikle Klasör yapısına bir göz atarak başlayalım:


Yapı

  • reset.css - bu link'den sıfırlamayı alabilirsiniz
  • style.css - HTML'i stillemek için kullanacağımız kendi css dosyamız
  • connection.php - veritabanı bağlantımızı sağlayacak dosya
  • index.php - alışveriş sepetimizin şablonu
  • cart.php - sepetteki ürünlerimizi değiştirebileceğimiz dosya (ekleme, çıkarma)
  • products.php - ürünlerin listelendiği sayfa

2. Adım

Html kodunu yazarak başlayacağız ve ardından stil oluşturacağız. index.php'yi açın ve aşağıdaki kodu kopyalayıp yapıştırın:

Görebileceğiniz gibi sayfamız iki sütundan oluşuyor: Ana sütun ve kenar çubuğu. Şimdi CSS'e geçelim. style.css dosyasını açın ve aşağıdaki kodu yazın:

Ürünler sayfamızın şimdi bu şekilde görünmesi gerekiyor:



Tüm Ekran Kaydı



3. Adım

PHP/MySQL bölümüne geçmeden önce veritabanını oluşturmamız gerekiyor. Bu yüzden phpMyadmin'i açın ve aşağıdaki adımları uygulayın:

  1. Privileges sekmesine gidin, yeni kullanıcı ekle düğmesine tıklayın ve aşağıdaki ayarları kullanın: Username: tutorial; Host: localhost; Password: supersecretpassword; Şimdi Global privileges'in seçili olduğundan emin olun ve bir sonraki adıma geçin.
  2. tutorials adında yeni bir veritabanı oluşturun.
  3. products adıyla yeni bir tablo oluşturun ve alan(field) sayısını 4 yapın. Şimdi o alanları doldurun: id_integer - INT olarak ayarlayın ve PRIMARY olarak seçili oldğundan emin olun (aynı zamanda auto_increment'e de ayarlayın); name - VARCHAR yapın ve uzunluğu 100 olsun; description - 250 uzunluğunda VARCHAR ; price - DECIMAL(2.6) olarak ayarlandığından emin olun
  4. Tablonuzu bazı örnek ürünlerle doldurun

Zaman kazanmak için ben ürünlerim tablosunu dışa aktardım, böylece şağıdaki sorguyu çalıştırabilirsiniz:





4. Adım

Veritabanından veri almaya geçmeden önce index.php'yi ürün listesi ve sepet için bir şablona dönüştüreceğim. Aşağıdaki kodu index.php sayfanızın başına ekleyin:

  1. session_start() - daha sonrası için; Oturumları(sessions) kullanmamıza izin verecek (session_start'ın tarayıcıya başka herhangi bir veri gönderilmeden önce yazılması çok önemlidir).
  2. İkinci satırda veritabanına bağlantı oluşturacak connection.php'yi ekleriz (şimdi halledeceğiz). Bir şey daha: include(Dahil etme) ve require(Zorunlu kılma) arasındaki fark. Eğer require kullanır ve dosyayı bulunamazsa, script çalıştırma işlemi duracaktır. "include" seçeneğini kullanırsanız, script çalışmaya devam eder.
  3. Sitenizdeki her dosya için tüm html kodunu (css ve js'e link) yerine tek bir dosyaya göreceli hale getirebilirsiniz. İlk olarak, "page set" adında bir GET değişkeni olup olmadığını kontrol ediyorum. Yoksa _pages adında yeni bir değişken oluşturuyorum. pages adı verilen GET değişkeni ilk olarak ayarlanırsa, ekleyeceğim dosyanın geçerli bir sayfa olduğundan emin olmak isterim.

Bunu yapmak için, dosyayı eklememiz gerekiyor; "main" kimliğine sahip div arasındaki index.php dosyasına şu satırı ekleyin:

index.php dosyamızın komple hali:


MySQL bağlantısını oluşturalım. connections.php'yi açın ve aşağıdakileri yazın:


5. Adım

Şimdi ürünler sayfası için html yazmanın zamanı geldi. Ö zaman devam edin ve aşağıdakileri yazın:

Sayfaya bir göz atalım:


Gördüğünüz gibi oldukça çirkin. Bu ekstra CSS'i ekleyerek biraz güzelleştirelim.

Tamam: Şimdi bir daha göz atalım:


Çok daha iyi duruyor, değil mi? Aşağıda bütün style.css kodu var:


6. Adım

Ürünü veritabanından çekmeden önce, son 2 tablo satırını tablomuzdan kaldıralım (yalnızca tablonuzun nasıl göründüğünü görmek için kullandık). Bunu kaldırın:

Harika! Şimdi tablo satırlarının bulunduğu bölüme şu PHP kodunu yazın:

  1. İlk önce ürünleri almak için SELECT'i kullanıyoruz, sonra veritabanından her satırı alarak sayfaya tablo satırı olarak ekliyoruz.
  2. Çapanın aynı sayfaya bağlandığını görebilirsiniz (kullanıcı ürün etiketine tıkladığında, sepete/oturuma eklenir ). Sadece ürünün id'si gibi ekstra değişkenler geçiriyoruz.

Sepete ekle bağlantılarından birinin üzerine fare ile geldiğinizde sayfanın alt kısmında geçirilen ürünün id'sini görebilirsiniz.



7. Adım

Sayfanın üst kısmına aşağıdaki kodu ekleyerek bağlantı linkinin çalışmasını sağlayalım:

  1. Eğer action adlı GET değişkeni tanımlı ve değeri ADD ise kodu çalıştırırız.
  2. GET değişkeni yoluyla geçen id'nin tamsayı(integer) olduğundan emin olun
  3. Ürünün id'si sepet OTURUMUN(SESSİON)'da bulunuyorsa, sadece miktarını 1 artırırız
  4. id oturumda mevcut değilse, GET değişkeni yoluyla geçen id'nin veritabanında bulunduğundan emin olmamız gerekir. Varsa, fiyatını alıp oturumu yaratırız. Aksi takdirde, hata mesajını tutacak message değişkenini tanımlarız.

Şimid bu message değişkeninin tanımlı olup olmadığını kontrol edip, sayfaya yazalım(bu kodu H1 sayfa başlığının altına yazın):

Burada, tüm products.php sayfasını görebilirsiniz.

Ürünün kimliği geçersizse hata mesajı budur.



8. Adım

index.php'ye dönüp kenar çubuğunu(sidebar) oluşturalım. Aşağıdaki kodu ekleyin:

  1. İlk önce, oturumda sepetin(session cart) tanımlanmış olup olmadığını kontrol ediyoruz. Değilse, mesajı görüntüleyerek kullanıcıya sepetin boş olduğunu bildiririz.
  2. Sonra bir mysql SELECT oluştururuz, yalnızca oturumda bulunan ürünleri'de seçiyoruz. Bunu yapabilmek için foreach kullanırız. Oturum içinde birer birer giderek ürün id'sini SELECT'e ekliyoruz. Sonra, SELECT'ten son virgülü kaldırmak için substr fonsiyonunu kullanırız.
  3. Sonunda verileri tarayıcıya göndeririz.

Aşağıdaki resimlere bir göz atın:



index.php tüm dosyalar için bir şablon olduğundan, kenar çubuğu cart.php'dede görünür olacaktır. Harika değil mi?!


9. Adım

Son olarak, cart.php dosyasını açın ve aşağıdaki kodu yazarak başlayın:

Bu kod, index.php ve products.php'deki koda çok benziyor bu yüzden her şeyi tekrar anlatmayacağım. Dikkat etmeniz gereken, miktarın bir formda görüntülenmesinin yerine, artık bir giriş kutusunda(input box) görüntüleniyor olması(bu yüzden miktarı değiştirebiliyoruz). Ayrıca tablo bir form etiketiyle sarılıdr. Öğelerin toplam fiyatını hesaplamak için id'si belli olaran ürünün(oturumdan) fiyatı ile miktarı çarpılır. Bu each döngüsü ile yapılır.

NOT: Giriş bir dizidir(array), anahtar(key) ürünün id'si ve miktar(quantity) miktar değeridir.



10. Adım

Yapmamız gereken son adım, formu çalışır hale getirmektir. Bu kodu cart.php sayfasının en üstüne ekleyin.

  1. Önce formun gönderilip gönderilmediğini kontrol ediyoruz. Gönderilmiş ve girdinin değeri(input) sıfırsa, o oturumu kaldırırız.
  2. Değer herhangi başka bir değerse, miktarı o değere ayarlarız.

İşte bütün cart.php


Umarım bu dersi beğenmişsinizdir. Herhangi bir sorunuz varsa, daha kapsamlı olan video dersi izleyebilirsiniz!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.