<a href="" class="show_youtube_popup"><i class="fab fa-youtube"></i></a>
$(document).on('click', '.show_youtube_popup', function(e){
e.preventDefault();
//popup çıkarma kodları
});
//Firmalar adında tablomuz var;
1 A Firması 1000
2 B Firması 1100
3 C Firması 900
4 D Firması 1200
select * from firmalar order by fiyat asc limit 1
Bu bize;
3 C Firması 900
sonucunu verecek. Diğer fiyatlar arasındaki sırası mantıken 1 değil mi ? Sonuçta en küçüğünü istiyoruz, küçükten büyüğe sıralıyoruz ve en küçüğü haliyle 1. sırada geliyor.
Burada sormak istediğini ben tam anlamadım.
Veritbanı, ER yapısı nasıl olmalı diye mi soruyorsunuz ?
Bende merak ettim bunu, onaylıyorum checkbox aktif edilmeden form gönderilmiyor ve onayladığında sözleşmeyi onayladığı anlamına gelmiyor mu ? Resmi olarak böyle bir durummu var mış. İlginç.
index.php de dirname alıp bir tanım yapabilirsiniz.
$dirname = dirname($_SERVER['SCRIPT_NAME']);
echo $dirname;
Sorunu çözdüm,
PHP 'nin set_error_handler fonksiyonu işimi gördü.
Daha sonra aynı sorunu yaşayanlar için bırakıyorum :)
@abdullahx, istemeyiz lakin olabiliyor :)
Phpstorm lisanslı kullanıyorum, hata ayıklamada sorun yaşamıyorum.
Sorunum anlık hatalarda kullanıcıyı fatal error veya garip php hata tanımları ile karşılamak istemiyorum :)
En basitinden, veritabanından gelen bir tanımım var diyelim. Ben bunu bir anlık değiştirdim, o an sayfamda bulununan kullanıcılar böyle bir tanım bulunamadı gibi bir mesajla karşılacaklar.
Artı olarak, bu hata mesajında benim path yolumda yazıyor. İşte şu yolda şu dosyada şu tanım bulunamadı gibi.
Bu sefer hatayı gizlesem fatal error çıkıyor, sayfa hiç çalışmıyor.
Onun dışında tüm işlemlerimde ki bu binden fazla yapar, kontrol yaparsam dinamik bir yapının anlamı kalmaz. Her taraf if else if else dolar gider.
index.php'mde veya App sınıfımda bir if koşulu yazmak istiyorum sadece. Sayfanın herhangi bir yerinde bir hata mesajı varsa (ki bu direk display_errors tan gelen mesaj)
kullanıcıyı nazik bir şekilde atıyorum bir çalışma yapılıyor daha sonra gelin diye bir sayfaya yönlendirmek :)
Rica ederim, aslında bu bahsettiğiniz diğer cevapta kısmen bulunmakta. Orada bir dizi ile status ve message tutulmuş.
Ajax isteminizde success veya error function(response) kısmındaki response php betiğinden gelen json formatındaki sonucu sizin almanıza olanak sağlıyor.
Yani örnekten yola çıkarsak response.message size "Giriş başarılı" metnini döndürecektir.
Sizin burada eklemeniz gereken, boş olmamasını istediğiniz post elemanlarını bir diziye atıp error response kodu ile geri döndürmek.
Ajax betiğinizdeki error kısmında da bunu response.errorValues gibi bir tanımla kontrol edebilirsiniz. Parçalayabilirsiniz.
Bir örnek vermek gerekirse;
if($_POST...
$attiributes = [
"firstname" => "Ad",
"email" => "E-Posta Adresi"
]
$errorValues = [];
foreach($_POST as $key => $val){ //Post ile gelen elemanları parçaladık
if(is_null($val)){ //Elemanın değeri boşmu diye sorduk
$error_values = [ //Boşsa dizimize bunu eklemek istiyoruz
"attr" => $key, //Error values dizimize boş olan değeri atadık, örneğin firstname
"message" => $attiributes[$key]." boş olamaz" //Burada hatalı alanı kullanıcıya verdik. Ortalama sonuç bu oalcaktır; "E-Posta Adresi Boş olamaz, Ad boş olamaz vb."
]
}
}
if($errorValues){ //Eğer formda bir hata varsa hatayı döndür
http_response_code(400);
echo json_encode([
"status" => false,
"message" => "Eksik veya hatalı alanları kontrol edin",
"errorValues" => $errorValues
]);
return false;
}
ajax isteminde error network durumunu dinler.
Hiçbir durum belirtilmemiş işlemler 500 Fatal dışında genelde 200 yani success döndürür.
Php kodlarınızda işlemin başarısız olduğunu bildirmek için
http_response_code(400); //Kendi durumunuza göre bir hata kodu belirtin, bu bir error bildirir.
fonksiyonunu kullanabilirsiniz. Bu ajax kodunuzdaki error mekanizmasını tetikleyecektir.
Başarılı işlemler içinde response kodunu 200 olarak yinede geri döndürün.
Success kontrolünde 200 dışında gelen yanıtlarıda hata olarak bildirebilirsiniz :)
Ürünler adında bir tablonuz var diyelim,
birde ürün tanımları adında tablonuz olsun.
Bu tabloda ürünün detaylarını saklayabilirsiniz.
Örneğin tablo yapısı basit olarak,
id
urun_id
tanim
deger
durum
3 id'sine sahip "2021 kazak modeli" adında bir ürünün olduğunu varsayalım
Bu örneğe göre şöyle birkaç veri girelim ürün_tanımlari' na.
1 - 3 - beden - xl - 0
1 - 3 - beden - s - 1
1 - 3 - beden - m - 1
1 - 3 - renk - siyah - 0
1 - 3 - renk - sari - 1
Burada 3 ID'li ürünümüzün 3 tane bedeni ve 2 tane rengi olduğunu bildirdik.
Durum kısmından da bedenlerin ikisinin olduğunu (değer 1 olanlar) bir tanesinin stokta olmadığını anladık.
Renklerde de aynı şekilde biri var diğeri yok.
Bu şekilde durumları da çekmiş olursunuz :)
Veri çekerken şöyle yapalım,
Ürün detay sayfasına girildiğinde ürünü çekerken urun_tanimlari tablosuna da join olun ve urun_id ile eşleştirip ürüne ait tanımlarıda çekin.
Beden altındakileri foreach ile beden selectine,
renk altındakileri foreach ile yine renk selcetine yazdırın.
Ayrı tablo yaparsanız farklı farklı tanımlarda ekleyebilirsiniz.