Basit bir şekilde aşağıdaki gibi bir kod kullanarak bunu yapabilirsin. Test etmek için buraya -> https://3v4l.org/6EOcV#v8.2.11
<?php
$data = "balıkesir:şanlıurfa:statyum-ankara
kırıkkale:kocaeli:statyum-ankara
van:mardin:statyum-ankara
ağrı:trabzon:statyum-ankara
elazığ:hatay:statyum-ankara";
$list = explode(PHP_EOL, $data);
foreach($list as $l) {
$items = explode(":", $l);
if (count($items) > 0 ) {
echo $items[2] . "#" . $items[0] . ":" . $items[1] . "\n";
}
}
?>
Merhabalar,
Öncelikle önerim direk veritabanı üzerinden çalışmak yerine entegrasyon için WooCommerce tarafından sağlanan API arayüzünü kullanmanızdır.
Sorunuza gelirsek, temelde bir ürünü varyantlı hale getirdiğiniz zaman ortada bir ana ürün kalmaz. Yani bir ayakkabının 38, 40, 42 numaralı varyantlı bir ürün olarak eklendiğini düşünün. Bu durumda hangisi ana ürün? Cevap hepsi. Bu yüzden varyantlarla çalışırken varyantlara ait SKU kodlarını baz alarak çalışmak gerekir.
Sizin durumunuzda sistemi bilmediğim için net bir şey söylemek zor, ancak görünen o ki veritabanı işlemlerinde bir yerleri eksik veya hatalı düzenliyorsunuz. Dolayısıyla ortaya böyle tuhaf bir durum çıkıyor. Kolay gelsin, umarım yardımı olur.
Merhaba,
Günlük 15-30 bin log kaydı gerçekten çok fazla bu kadar neyi logluyorsunuz merak ettim? Eğer profesyonel bir sistemin loglaması ile ugraşıyorsanız veritabanından ziyade Greylog benzeri log sunucusu çözümlerini incelemenizi öneririm.
Eğer tablolarla çalışacaksanız ki ben tavsiye etmem bu kadar log çok fazla veri oluşturacaktır. Sorguları hızlandırmak için tablo indexlerinizi gözden geçirmenizi öneririm.
Eğer bir log server kullanmak yerine tablolarla çalışmanız gerekiyorsa loglar için mongodb tarzı bir no-sql veritabanı tercih edebilirsiniz. Okuma ve yazma hızları ilişkisel veritabanına göre çok daha iyi olacaktır.
Kısaca mevcut durumunuzu tam olarak bilemediğim için bazı öneriler sundum. Son olarak sizin sorunuza gelirsek, log tabloları yapısının aynı olacağını düşünerek küçük bir create table scripti hazırlayıp bir kenarda tutar ve loglamadan önce eğer yeni ay başladıysa bu scripti çalıştırıp yeni aya ait log tablosunu oluştururdum. Bu tablo adını bir config dosyasına yazar ve loglama yaparken tablo adını bu config dosyasından çeker devam ederdim.
<code> <button type="submit" id="ajaxSubmit" name="btn_ajax" value="1">Ajax Gönder</button><br><br></code>
Yukarıdaki satırdaki type="submit"
tanımımı silmeyi denedin mi?
<code> <button type="submit" id="ajaxSubmit" name="btn_ajax" value="1">Ajax Gönder</button><br><br></code>
Yukarıdaki satırdaki type="submit"
tanımımı silmeyi denedin mi?
Merhaba, query string çözümü işinizi görmüyor mu?
Örnek bir callbackUrl şöyle olabilir. www.siteniz.com/paytr-callback?uyeid=159357
Yapıyı tam olarak bilmediğim için sadece fikir olması açısından yazıyorum.
Acaba son_fiyat bilgisini veritabanında tutmak yerine önyüze göndermeden önce merkezi bir fonksiyon ile her defasında hesaplamak daha dinamik bir yapı oluşturmak için daha iyi olabilir mi?
Böylece fiyatı etkileyen ne kadar kriter varsa buna göre her defasında son_fiyat yeniden hesaplanır. Bu sunucu yükünü arttırır ancak dinamik bir son_fiyat verisi elde etmeyi sağlar diye düşünüyorum.
Merhaba zfactor,
Birinci sorgu örneğine baktığım zaman basit SELECT
ifadeleri görüyorum. Doğrusu tablon çok fazla satır içermiyorsa bu sorguların milisaniye mertebesinde tamamlanması gerekir. Sanırım bahsettiğin geçikmenin ana sebebi döngü içinde tekrar tekrar sorgu oluşturup icra etmenden kaynaklanıyor.
Eğer durum böyle ise döngü içindeki sorguyu döngü dışına çıkarmak belki işini hızlandırabilir. Örneğin döngü içindeki sorguyu döngü dışında yapıp değerleri bir diziye aktardıktan sonra döngü içinde dizi üzerinde arama yaparak istenen sonuçlara ulaşılabilir. Denemek gerekir tabi ki.
İkinci sorgu için evet INNER JOIN
kesişim kümesini getireceği için senin aradığın boşlukları kaybedersin ve LEFT JOIN
her halükarda birinci kaydı getireceği için yine boşlukları kaybedersin.
Burada gördüğüm kadarıyla aslında rezervasyon
tablosunu alıp sorguna birde oda_id
eklemek istiyorsun. Bunun için birleştirme JOIN
yerine alt sorgular SUBQUERY
kullanabilirsin. Örnek sorgu şöyle bir şey olmalı;
SELECT r.odaid, r.adsoyad ADOSOYAD, r.giristarihi, r.cikistarihi,
(SELECT id FROM odam WHERE id = r.odaid) AS oda_id
FROM rezervasyon as r
WHERE r.giristarihi <= '01.04.2021' and r.cikistarihi > '03.04.2021"
Tabi bu sana içinde oda_id
bilgiside olan bir rezervasyon listesi verecektir. Sen kendi odanı ve rezervasyon bilgilerin bu liste içinde bulmalısın. Umarım yardımcı olur.
Merhaba rufiqcavadov,
POS sisteminden kastın bir ödeme sayfası oluşturmak ise zaten bir çok ödeme sistemi sana böyle bir sayfayı ve kodlarını veriyor. Sana sadece bu kodları sitene yerleştirmek kalıyor. Temel PHP bilginle bunu yapmak gayet kolay olur. Araştırmanı tavsiye ederim.
Merhaba burak001,
Diğer arkadaşlar gayet güzel anlatmış, bende kısaca çalışma şeklinden bahsedeyim. Web editörler aslında senin girdiğin içeriği html formatında sana verirler. Sende bunu veritabanında saklar ve görüntülemek istediğin yerde yine html olarak sayfaya aktarırsın. Böylece editör üzerindeki tüm düzen bozulmadan sayfaya aktarılmış olur.
Resim, video vs. konusuna gelince genelde resim kendisini değil bulunduğu yolu editörün oluşturduğu html kodu içinde zaten kaydedersin. Yani aslında editör için veritabanın tarafında yapman gereken çok bir durum yok. Tablona bir text alan açıp editördün gelen değeri buraya kaydetmen yeterli.
Umarım yardımı olur, kolay gelsin.