Ben genelde ürün detaylarını bir table de tutmak yolunu kullanırım. Bu table'ın bir product_id alanı olacak ve bu alan product table'daki id alanıyla eşleştirilecek. Böylece ürünün detayları ile ürünün genel bilgileri birbirine bağlı olacak ve performans düşüklüğü oluşmayacak.
Ayrıca, ürün detayları table'sına sadece kullanılacak olan detayları eklemeye özen gösteririm. Örneğin, eğer bir ürünün hafızası önemli değilse hafıza alanını bu table'da tutmam. Böylece table'ın yükü hafifleyecek ve performans iyileşecektir.
Diğer bir yöntem ise, ürün detaylarını json formatında bir alanda tutmak olabilir. Bu yöntem ile ürün detaylarına dinamik olarak ekleme ve çıkarma yapılabilir ve table yapısı değişmez. Ancak bu yöntem de performans konusunda biraz düşük olabilir. Bu yüzden genellikle ilk yöntemi tercih ederim.
Kodunuzu şu şekilde düzelterek istediğiniz sonuca ulaşabilisiniz!
<?php
function kdvsizTutar($tutar, $kdv) {
$sonuc = $tutar / (1 + ($kdv/100));
return number_format($sonuc, 2, '.', '');
}
$kdv = "18";
$tutar = "100.00";
echo kdvsizTutar($tutar, $kdv); // 84.75
$tutar = "101.00";
echo kdvsizTutar($tutar, $kdv); // 85.59
Merhaba! PHP kullanarak bir sipariş düzenleme ekranında yaptığınız değişiklikleri log olarak kaydetmek için aşağıdaki adımları izleyebilirsiniz:
1- Öncelikle, sipariş düzenleme ekranında bir "log" tutma işlemini gerçekleştirmek için bir dosya oluşturun ve dosyanın adını order-log.txt olarak belirleyin.
2- Daha sonra, sipariş düzenleme işlemini gerçekleştirdiğiniz PHP kodunun içinde bir log oluşturma işlemini başlatın. Bu işlemi yapmak için, order-log.txt dosyasına yazma işlemini gerçekleştirebilirsiniz.
Örneğin:
$log = fopen('order-log.txt', 'a'); // 'a' parametresi dosyaya ekleme yapmak için kullanılır
3- Daha sonra, sipariş düzenleme işleminin gerçekleştiği kısımda, değiştirilen veriyi dosyaya yazma işlemini gerçekleştirin.
Örneğin, siparişteki ad ve soyadı değiştirdiğinizde aşağıdaki kodu kullanabilirsiniz:
// Önceki ad ve soyadı alın
$oldName = 'John Doe';
// Yeni ad ve soyadı alın
$newName = 'Jane Doe';
// Değişiklikleri log dosyasına yazın
fwrite($log, "Ad ve soyad değiştirildi: $oldName => $newName\n");
Bu şekilde, sipariş düzenleme ekranında yaptığınız tüm değişiklikleri order-log.txt dosyasına kaydedebilirsiniz. Umarım bu bilgi size yardımcı olmuştur...
Evet, IndexedDB hakkında biraz bilgim var. IndexedDB, JavaScript kullanarak tarayıcınızda veri depolamanızı sağlayan bir veritabanı özelliğidir. Bu veritabanı, verilerinizi anahtar/değer çiftleri olarak depolamanıza ve bu verileri daha sonra hızlı bir şekilde aramanıza olanak sağlar.
Örnek kodu aşağıda gösteriyorum:
// Veritabanını açma ve bir depolama alanı oluşturma
let db;
let request = indexedDB.open("myDatabase", 1);
request.onerror = function(event) {
console.error("Veritabanı açılırken hata oluştu: " + event.target.errorCode);
};
request.onsuccess = function(event) {
db = event.target.result;
};
request.onupgradeneeded = function(event) {
let db = event.target.result;
// Bu kısımda bir "object store" (depolama alanı) oluşturuyoruz
let objectStore = db.createObjectStore("myObjectStore", { keyPath: "id" });
// Depolama alanına birkaç veri ekleyelim
objectStore.add({ id: 1, name: "John Doe", age: 30 });
objectStore.add({ id: 2, name: "Jane Doe", age: 28 });
};
// Veritabanındaki verileri okuma
let transaction = db.transaction(["myObjectStore"]);
let objectStore = transaction.objectStore("myObjectStore");
let request = objectStore.get(1);
request.onerror = function(event) {
console.error("Veriler okunurken hata oluştu: " + event.target.errorCode);
};
request.onsuccess = function(event) {
// Burada verileri kullanabilirsiniz
let data = event.target.result;
console.log("İsim: " + data.name + ", Yaş: " + data.age);
};
Bu kod, bir veritabanı oluşturur ve bu veritabanına bir depolama alanı ekler. Daha sonra, bu depolama alanına birkaç veri ekler ve son olarak da bu verileri okur. Daha fazla bilgi için MDN web docs'a göz atabilirsiniz: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API
Merhaba,
Bu tür bağlantılarda, GET başlıkları ve değerleri "?" karakterinden sonra "&" karakteri ile ayrılır. Bu nedenle, URL'yi parçalayarak bu başlıkları ve değerlerini elde edebilirsiniz. Örnek olarak, aşağıdaki kod parçacığını deneyebilirsiniz:
$url = "https://www.prototurk.com/sorular/cevaplar?sayfa=2&filtre=prototurk,soru,cevap";
$getItems = explode("?", $url);
$getParams = explode("&", $getItems[1]);
$result = array();
foreach ($getParams as $param) {
$paramItems = explode("=", $param);
$result[$paramItems[0]] = $paramItems[1];
}
print_r($result);
Bu kod parçacığında, explode() fonksiyonunu kullanarak URL'yi "?" karakterine göre parçalıyoruz ve daha sonra parçalanmış dizinin ikinci elemanını tekrar "&" karakterine göre parçalıyoruz. Daha sonra, bu parçalanmış diziyi döngü ile geziyor ve her bir elemanı "=" karakterine göre parçalıyoruz. Böylece, her bir GET başlığı ve değerini ayrıştırabiliyoruz. Döngü bittikten sonra, $result dizisi içinde istediğiniz sonuçları bulabilirsiniz.
Umarım bu bilgiler yardımcı olur. İyi çalışmalar!
Evet, bu mümkün. Sizin sisteminizin login sayfasına karşı tarafın site adresini yönlendirme kodu ile ekleyerek bu işlemi gerçekleştirebilirsiniz. Örneğin:
<a href="http://www.benimsite.com/login?redirect=http://proje.kendisiteleri.com">Login</a>
Bu yönlendirme kodu sayesinde kullanıcılar sizin login sayfasına girdikten sonra otomatik olarak karşı tarafın site adresine yönlendirilecekler ve giriş yapabilecekler.
Bu yöntemle kullanıcı adı ve şifreleriniz sizin sunucularınızda kalarak güvenliği sağlayabilirsiniz ve karşı tarafın domainine kurmuş olduğu sistem sizin siteniz üzerinden giriş yaparak kullanılabilir.
Merhaba! Evet, Python birçok insan tarafından başlangıç için iyi bir dil olarak kabul edilir. Python, düşük giriş eğimine sahip olduğundan ve kodların okunabilirliğinin yüksek olmasından dolayı, dilin öğrenilmesi kolaydır. Bu nedenle, birçok programlama dilini öğrenmeye başlamak için Python'ı tercih edebilirsiniz.
Ancak, Python ile sadece başlangıç için değil aynı zamanda gelişmiş masaüstü ve web yazılımları da yazabilirsiniz. Örneğin, Python ile birçok popüler web framework'ü kullanarak web uygulamaları geliştirebilir ve aynı zamanda birçok platformda çalışabilen masaüstü uygulamalar da yazabilirsiniz. Bu nedenle, Python ile yalnızca başlangıç için değil, gelişmiş projelerde de kullanılabilir.
Son olarak, Python ile öğrendikten sonra c# veya java gibi dillere geçmek isterseniz, bu da mümkündür. Programlama dilleri arasında çok fazla fark yoktur ve öğrendiğiniz temel kavramları diğer dillere de uygulayabilirsiniz. Bu nedenle, Python ile öğrendikten sonra istediğiniz bir dil ile devam edebilirsiniz.
Merhaba,
Php 7 versiyonundan itibaren resim yüklemesi yaparken aşağıdaki kodu kullanarak kaç adet resim yüklenmiş olduğunu görebilirsiniz:
$uploaded_files = count($_FILES['file_upload']['name']);
echo "Toplam $uploaded_files adet resim yüklenmiş.";
Bu kod, file_upload isimli bir form alanı kullanarak kaç adet resim yüklenmiş olduğunu sayar ve sonuç olarak ekrana yazdırır. Lütfen dikkat edin, bu kod sadece bir form alanının kullanıldığı durumlar için geçerlidir. Eğer birden fazla form alanı kullanıyorsanız, her bir alan için ayrı bir sayaç oluşturmanız gerekir.
Eğer item_filter kolonunun içindeki veriler virgülle ayrılmış bir dizi ise, bu diziyi explode fonksiyonu ile bir diziye dönüştürebilirsiniz.
Örneğin:
$filterValues = explode(",", $row['item_filter']);
Bu sayede $filterValues dizisi içinde item_filter kolonundaki değerleri bulabilirsiniz. Daha sonra bu dizi içinde arama yaparak ilgili verileri filtreleyebilirsiniz.
Örneğin:
foreach ($itemRows as $row) {
$filterValues = explode(",", $row['item_filter']);
if (in_array(1, $filterValues) && in_array(3, $filterValues)) {
// Bu satırda 1 ve 3 değerleri bulunuyor, bu veriyi kullanabilirsiniz
}
else if (in_array(1, $filterValues)) {
// Bu satırda sadece 1 değeri bulunuyor, bu veriyi kullanabilirsiniz
}
// Diğer filtreleme seçeneklerini burada yazabilirsiniz
}
Bu sayede $itemRows dizisindeki verileri istediğiniz gibi filtreleyebilirsiniz. Umarım bu bilgi size yardımcı olur.
PHP ile misafir kullanıcının sepetini nasıl tutacağınız size kalmış. Her iki yöntem de faydalı olabilir, ancak ne yöntemi kullanacağınızın seçimi bazı faktörlere bağlıdır. Eğer veritabanını kullanarak sepeti tutmayı düşünüyorsanız, bu size daha esnek bir yöntem sunabilir ve sepet içeriğini daha kolay bir şekilde yönetebilirsiniz. Ancak veritabanına erişim hızı düşükse veya web sitesi yoğun bir şekilde ziyaret ediliyorsa, cookie kullanarak sepeti tutmak daha hızlı olabilir. Önerim, ne yöntemi kullanacağınıza karar vermeden önce ihtiyaçlarınızı ve site kullanımınızın özelliklerini düşünmeniz olur.