Edit
Demek istediğim varyantlardan hangisi tek ürün olarak göster seçiliyse ürün sayfasında o özellikleri
üstte mi göstereyim.
Burda bir karmaşa oluyor.
örnek :
S beden mavi t shirt
M beden mavi t shirt
L beden mavi t shirt
M beden tek ürün olarak göster seçeneği aktifse
ürünler sayfası da
M beden mavi t shirt ayrı ürün olarak gösterilecek
burda tıklayıp ürünü açtığında hangi özelliği üstte göstermelitim
mantıken üstte s m l
olacak m de aktif olacak
ama bu mantıklımı yoksa sistemi renkler üstte olarakmı
kurgulamalıyım.
yada renk özelliği varsa eğer onu sayfada hwp üsttemi tutayım
vlist var dump ilw test et önce doluysa kontrolü onun üstünden yap birbaşka şeyde pdo feth sorgudan sonra bir değişkene result et bu ijisinden birini yap olacak
sorun büyüj ihtimalle veritabanında ki sütunlardan birinde veri tipi ile girilen veri tipi farklı olduğundan.
mysql tabo yapını atmalısın buraya
Kayıt neyi amaçlıyor anladığım kadarıyla kullanıcının sadece bir il ve ilçe den fazla kaydı olnayacak
butona kaydet dedikten sonra başka sayfaya yönlendirip sayfa başında kaydınız alındı uyarısı verdirirsiniz.
Açık yazarsanız daha iyi olur kayıt ne için hangi sayfada gibi.
Aklıma tajılan birşey var local storage nin biz kayıt eklemeden öncw başka sitelwr tarafından tamamen kullanılmış olma ihtimali varmıdır yoksa tarayıcı eklenmek istenen veri için öncekilerden silermi ayrıca
biz javascript ile local storagede biz eklemesek de yer açabiliyormuyuz.
Bu tür senaryolar olabilirse olumsuz yönde,
sanırım direkt olaraj ajax sorgu yöntem8 cache query olur gibi.
Ürün sayfamdaki varyant seçeneklerim :
/*
attribute-1 (1 : property id / value : Renk)
attribute-0 (0 : property id / value : Matterial)
input hidden value="sayfada ki property id leri string içinde(bu durumda '0-1' Renk ve Matterial)"
radio type içinde ki diziyi php sayfasında explode ile dizi yapıp select_variants ? [] 'ı döndüye alacağım
Bu bölüm sepete eklenirken kullanılıyor.
*/
<div id="attribute-1" class="attribute_list">
<strong class="attribute_name">Renk</strong>
<label for="variant_option-6" data-property="6" class="propertys propertys_active">
<input type="radio" name="select_variants1[]" id="variant_option-6" value="6" class="variants_radio">
Sarı
</label></div>
</div>
<div id="attribute-0" class="attribute_list">
<strong class="attribute_name">Matterial</strong>
<label for="variant_option-52" data-property="52" class="propertys propertys_active">
<input type="radio" name="select_variants1[]" id="variant_option-52" value="52" class="variants_radio">
Sarı
</label>
<label for="variant_option-51" data-property="51" class="propertys">
<input type="radio" name="select_variants0[]" id="variant_option-51" value="51" class="variants_radio">
Sarı
</label>
</div>
Diyelim ki
attribute-1 => select_variants1[] => value : 6 seçildi
diğer property de olmayan varmı diye kontrol edip olmayanları pasif hale getirmek
şimdilik burasını yapmadım.
attribute-0 => select_variants0[] => value : 52 seçildi
SKU : 6-52 olmuş oldu
kullanıcı önce 52 yi seçerse 52-6 olur ve istenmeyen durum veri tabanında küçükten büyüğe doru sıralanıyor çünkü.
Yani kayıt edilecek attribute id leri sort ile 52-6 değilde 6-52 şeklinde sıralanıp kayıt ettiriliyor.
Bu yüzden aynı kayıt ettirirken yapıldığı gibi seçilenleride sort ile uygun hale getiriyoruz.
ÖNEMLİ KISIM ?
1.) 6-52 SKU kodunu veri tabanına gönderip varyant bilgilerini alıp kullanıcıya değişik fiyat ve ürün adını gösterebilirim. js tarafında.
2.) Böyle yapmayıp her ürün sayfası açıldığında ürünün varyant bilgilerini ajax ile bir seferde alıp
local storage kayıt ederim.
Ve 6-52 geldiğinde sku = 6-52 diyerek gerekli objeyi alırım.
Kullanıcı başka ürün sayfasına gittiğinde varsa objeyi sildirip üstüne tekrar yazdırırım
Böyle bir dögü olur
Kullanıcı sayfayı açıp varyantları değiştirdiğinde veri tabanından değilde
tarayıcı deposundan alırım.
array (size=2)
0 =>
object(stdClass)[23]
public 'varyant_id' => string '38' (length=2)
public 'urun_id' => string '461' (length=3)
public 'sku' => string '6-51' (length=4)
public 'urun_adi' => string 'Cotton Matterial Sarı Renk yeni varyant' (length=40)
public 'single' => string '1' (length=1)
public 'shop_id' => string '1' (length=1)
public 'quantity' => string '15' (length=2)
public 'price' => string '75.00' (length=5)
1 =>
object(stdClass)[24]
public 'varyant_id' => string '39' (length=2)
public 'urun_id' => string '461' (length=3)
public 'sku' => string '6-52' (length=4)
public 'urun_adi' => string 'Poly Matterial Sarı Renk yeni varyant' (length=38)
public 'single' => string '1' (length=1)
public 'shop_id' => string '1' (length=1)
public 'quantity' => string '10' (length=2)
public 'price' => string '100.00' (length=6)
BU şekilde düşünüyorum.
Not bu varyant sistemi ikili yani sadece 2 özellik üstünden gidiyor.
hepsi buradanın varyantlı ürününü test ettim
network de istek gönderildiğini gördüm
sanırım ajax kullanmalarının sebebi
veri güncellenirse hatalı veri sepete eklenmesin diye
düşünüyorum.
Ama düşündürücü bir kısım burası sonyçta hepsiburada
sonuçta kendi sunucuları ve kimbilir ne kadar güçlüdür yani ajax orada uygun
ama küçük ölçekli bir site için uygun değil.
Sayfa ikl kez yüklendiğinde varyant bilgilerini javascript değişkende tutmak olur gibi sanki.
Şimdi
Upload ederken FILES disisini var_dump($_FILES);
diye bastırırsan gelen dosyaların yada dosyanın tipi orada var.
$_FILES['duyurular_resimyol']["type"]
sütuna unique kısıtlaması getir
db bağlantı değişkenine hata varmı
bak
db->errorInfo kendi içinde dizi döndürür
duplicate kodu varmı bak varsa
aynı kayıt var uyarısı verdirirsin
yapamazsan bilgisayardan gönderirim
ayrıntısını
Çok normal çünkü session bilgilerin çıkış yaptan önce sayfanın en üstünde tanımlamalısın.
Kodların çok karışı bu tür işlemlerde kodları parçala yani aynı sayfada işlem yaptırma.
Login sayfan ayrı
Login ve logout için ayrı sayfa kullan.
youtube dan bakabilirsin.